Bir dizindeki tüm klasörler / dosyalar için varsayılan dosya izinleri nasıl ayarlanır?


254

İçinde oluşturulan herhangi bir şeyin (dizinler, dosyalar) varsayılan izinleri ve grubu miras alacağı bir klasör ayarlamak istiyorum.

"Medya" grubunu arayalım. Ayrıca dizinde oluşturulan klasör / dosyalar otomatik olarak g + rw'ye sahip olmalıdır.


1
Bu, yeni dosya / klasörü yaratan kullanıcı ve onun emriyle kontrol edilmiyor mu?
Wadih M.

umask izinlerle ilgilidir, ancak kullanıcının kendisi olmayan varsayılan bir grubu ayarlamakla hiçbir şey yapmadığına inanmıyorum.
Chris

1
Hangi işletim sistemi? Etiketler gerekli. setfaclve varsayılan ACL'ler AIX'te yoktur.
Amit Naidu

Yanıtlar:


269

Buldum : Varsayılan izinleri uygulama

Makaleden:

chmod g+s <directory>  //set gid 
setfacl -d -m g::rwx /<directory>  //set group to rwx default 
setfacl -d -m o::rx /<directory>   //set other

Sonra doğrulayabiliriz:

getfacl /<directory>

Çıktı:

# file: ../<directory>/
# owner: <user>
# group: media
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x

5
Yapışkan bit için Yay!
gabe.

22
Gid'i yapışkan bit ile karıştırmamaya izin verir.
Amit Naidu

10
g + s dizindeki yeni içeriğin grup sahipliğini devralmasını sağlayacaktır. setfacl sadece chmod'u değiştirir, sizin durumunuzda o = rx
Steen Schütt

10
Devralınacak dosya izinleri için ACL'nin (takılı dosya sistemi için montaj seçeneklerinden biri olarak dahil edilmiştir) etkinleştirilmesi gerektiğini unutmayın.
sg23 21:14

11
Bunun yerine 'X' kullanmayı düşünebilirsiniz, bu yüzden sadece dosyalara değil dizinlere yürütme iznini koyacaktırsetfacl -d -m g::rwX /<directory>
Adrian Gunawan

27

Bu Chris'in cevabına bir ektir, Arch Linux teçhizatımdaki deneyimime dayanmaktadır.

Varsayılan anahtarın (-d) ve modifiye anahtarının (-m) kullanılması yalnızca varsayılan izinleri değiştirecek, ancak var olanları değişmeden bırakacaktır:

setfacl -d -m g::rwx /<directory>

Klasörün mevcut izinler de dahil olmak üzere tüm izin yapısını değiştirmek istiyorsanız (fazladan bir satır yapmanız ve özyinelemeli hale getirmeniz gerekir -R:

setfacl -R -m g::rwx /<directory>

Örneğin.

setfacl -R -m g::rwx /home/limited.users/<directory> // gives group read,write,exec permissions for currently existing files and folders, recursively
setfacl -R -m o::x /home/limited.users/<directory> //revokes read and write permission for everyone else in existing folder and subfolders 
setfacl -R -d -m g::rwx /home/limited.users/<directory> // gives group rwx permissions by default, recursively
setfacl -R -d -m o::--- /home/limited.users/<directory> //revokes read, write and execute permissions for everyone else. 

( CREDIT , tüm ayrıcalıkları iptal etme hattının sentezi için yapılan yorumlarda belirtmek üzere işaretlendi)


2
Grup ayrıcalıklarını iptal etmek için (örnek olarak): sudo setfacl -d -mg :: --- / path
markdwhite

1
Cevabında setfacl -R -m g::rwx /<directory>iki kere belirten sadece bir yazım hatası mı?
Shane Rowatt 11

0

Kendiniz / kayıtlı kullanıcılarınızı www-data grubuna ekleyin, böylece www-data server tarafından oluşturulan dosyalarla çalışabiliriz.

sudo usermod -a -G www-data $USER

Yeni eklenen grubun yürürlüğe girmesi için yeniden başlatılması / yeniden başlatılması gerekiyor

cd /var/www

Html klasörüne grup üyesi olarak www-data, sahibini kullanıcı olarak ekle, böylece biz de bir grup üyesinin sahibiyiz.

sudo chown -R $USER:www-data html

Kullanıcı adınızı KULLANICI yerine yerleştirin

Okuma, yazma, izinleri gerektiği gibi çalıştır, (ugo) u = kullanıcı, g = grup, o = diğerleri

sudo chmod 750 html

Html'nin GID değerini ayarlayın, şimdi, html'de yeni oluşturulan dosyalar sahiplik izinlerini devralacak:

sudo chmod g+s html

Bu, html dizini ve alt dizinleri içerisinde yeni oluşturulan dosyalar / dizinler için varsayılan kuralları oluşturur.

sudo setfacl -R -d -m u::rwX -m g::rX -m o::000 html

Eğer kurulu ise SELinux yapın, www-data bağlamı gereğini yoksayın, böylece yazma izinlerine izin verin

sudo setsebool -P httpd_unified 1

uygulanan yeni izinleri görmek için dizini listele

ls -ld html

Bunu döndürür

drwxrwsr-x+   3 html www-data

Sondaki +, ACL'nin, Erişim Kontrol Listesi'nin dizinde olduğunu belirtir.

Referans : Foruma bağlantı


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.