Neden daha kısıtlayıcı bir umask'a rağmen ev dizinimdeki dosyalar dünya tarafından yazılabilir olarak oluşturuluyor?


10

Yeni dosya ve dizin izinlerinin biraz garip davrandığını anladım. Her şeyden önce, umask doğru cevabı veriyor gibi görünüyor:

$ umask
0002

Bu, kullanıcı ve grubum için tam erişim, dünyanın geri kalanı için yazma erişimi yok, suid değil. Ancak $ HOME'umda bir dosya oluşturursam, şöyle görünür:

$ ls -l testfile 
-rw-rw-rw- 1 robe robe 0 mar 16 12:58 testfile

yani, herkese yazma erişimi vermek. Aynı şey dizinlerde de olur:

$ ls -ld testdir
drwxrwxrwx 2 robe robe 6 mar 16 13:00 testdir

Bu 0002 değil, umask 0000 sahip aynı olduğunu düşünüyorum. Ben varsayılan / 0002 veya 0022 değiştirir umask bazı örnek için tüm / etc aradım, ama hiçbiri bulunamadı. Bu, varsayılan CentOS 5.5 kurulumudur. Bunun neden olduğuna dair herhangi bir ipucu var mı?


3
Ana dizininiz hangi dosya sistemi türünde?
mattdm

4
Ve nasıl yaratıyorsunuz testfileve testdir?
mattdm

3
@mattdm, ısrarlıydınız: bu XFS. / Home, / var ve daha fazlası için ayrı ciltlerimiz olduğunu unuttum. Gerçi XFS'yi sık kullanıyorum ve bu davranışı görmemiştim. Nasıl ilişkili olabilir?
rsuarez

2
acl yerel olarak umask'i geçersiz kılabilir. Dizinlerinizin acl ile bağlanması mümkün mü?
Faheem Mitha

3
Hmm, görünüşe göre xfs her zaman acl etkin. bu yüzden / etc / fstab dosyasında gösterilmeyebilir. Bölümlerinizde / dizinlerinizde getfacl komutunu çalıştırmayı deneyin.
Faheem Mitha

Yanıtlar:


3

Kendi soruma cevap vermenin doğru olup olmadığını bilmiyorum. Editörler, lütfen, durum böyle değilse bu konuda tavsiyede bulunun. Şimdiden teşekkürler.

Bu gizemi çözdüğümü düşünüyorum: sorun XFS hacimlerinde varsayılan bir ACL'nin olmamasıydı. Etkilenen dizinlerden biri olan / srv / backups için ACL girdisi:

# file: srv/backups
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

Ne zaman bir "mkdir testi" veya "dokunmatik test dosyası" yapsam, 777 izinleri ile gelirdi. Yani bunu yaptım:

setfacl -m d:u::rwx /srv/backups

ACL'yi şu şekilde bırakmak:

# file: srv/backups
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::r-x
default:other::r-x

Daha önce (sözde) hiçbir ACL yoktu, ama şimdi var. Bir "ls -l" yaptığımda izinlere bağlı "+" işareti görebilirsiniz. Ve sihirli bir şekilde, şimdi "mkdir testi" ve "dokunmatik test dosyası" beklenen izinlerle çalışır:

# ls -l testfile 
-rw-r--r-- 1 root root 0 Dec 20 10:00 testfile
# ls -ld testdir
drwxr-xr-x+ 2 root root 6 Dec 20 10:00 testdir

Bunun neden olduğunu bilmiyorum. Sanırım XFS varsayılan bir ACL'ye sahip olmaktan hoşlanmıyor ve gerçekleştiğinde garip davranıyor. Ayrıca, bunun Debian / Ubuntu'da değil, sadece CentOS'ta olduğunu gördüm. Belki de çekirdekteki XFS sürümüyle veya bunun gibi bir şeyle ilgilidir. Fikrim yok.

Her neyse, bu benim için durumu çözüyor. Tüm öneriler için çok teşekkürler :-)


Kendi sorunuzu cevaplamak tamamen kabul edilebilir .
Keith Thompson

0

Creat çağrısı, umask'a göre öncelikli olan izinleri açıkça belirtebilir.

Nasıl yarattığınızı cevaplamadınız testfile,testdir.

Kullanarak dosyayı oluşturun touch testfile, ardından izinleri listeleyin ve gönderin


Gecikme için üzgünüm. "Touch testfile" ve "mkdir testdir" kullanarak benzer sonuçlar elde ederek test yaptım. umask "0000" olarak ayarlanmış gibi görünüyor, çünkü izinler 777 ile oluşturuldu.
rsuarez

0

getfacl .İzinleri etkileyen varsayılan bir acl olup olmadığını görmek için test dosyanızı oluşturduğunuz dizinde bir deneyin .


1
Hayır, varsayılan ACL yok. Bir şekilde XFS ile ilişkili gibi görünüyor, çünkü sadece XFS birimlerinde oluyor. Yinede teşekkürler.
rsuarez

-1

/Etc/login.defs dosyasındaki USERGROUPS_ENAB değişkenini bulmanız yeterlidir

Devre dışı bırakmak için yorum yapıyorlar # USERGROUPS_ENAB evet

Ayrıca, geçerli kullanıcının umask'ını da değiştirmek istiyorsanız, önce önceki prosedürü takip etmeli ve aşağıdakileri yapmalısınız.

027 için örnek

echo "umask 027" >> ~ / .bashrc && pkill -KILL -u your_username_here

echo "umask 027" >> ~ / .bashrc bu komut profiliniz için bir umask varsayılan değeri ayarlayacaktır

bu sizi oturumunuzu kapatmaya zorlar

tekrar giriş yaptıktan sonra

umask comand'ı tekrar çalıştırın ve sizin için çalışıp çalışmadığına bakın

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.