it-swarm-tr.com

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

İçinde oluşturulan her şey (dizinler, dosyalar) varsayılan izinleri ve grubu devralacak şekilde bir klasör ayarlamak istiyorum.

Grup "medya" diyelim. Ayrıca, dizinde oluşturulan klasörler/dosyalar otomatik olarak g + rw değerine sahip olmalıdır.

274
Chris

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
288
Chris

Bu Chris'in cevabına bir ektir, Arch Linux platformumdaki deneyimime dayanıyor.

Varsayılan anahtarı (-d) ve değiştirme anahtarını (-m) kullanmak yalnızca varsayılan izinleri değiştirir, ancak mevcut izinleri olduğu gibi bırakır:

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

Mevcut olanları da içeren klasörün tüm izin yapısını değiştirmek istiyorsanız (ekstra bir satır yapmanız ve yinelemeli -R yapmanız gerekir:

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. 

( KONTÖR tüm ayrıcalıkların iptali satırının sözdizimi için yorumlarda işaretlemek

29
thebunnyrules

Kendinizi/oturum açmış kullanıcıyı 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 açılması gerekiyor

cd /var/www

Www-data'yı html klasörünün grup üyesi olarak ve kullanıcınızı sahip olarak ekleyin, böylece biz de bir grup üyesinin yanı sıra

Sudo chown -R $USER:www-data html

Kullanıcı adınızı USER yerine koyun

Okuma, yazma, yürütme iznini gerektiği gibi ayarlayın, (ugo) u = kullanıcı, g = grup, o = diğerleri

Sudo chmod 750 html

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

Sudo chmod g+s html

Bu, html dizini ve alt dizinlerinde 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

Yüklüyse SELinux'u yapın, www-data bağlam gereksinimini yok sayın, böylece yazma izinlerine izin verir

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 ayarlandığını gösterir.

Referans: Foruma bağlantı

1
Bsienn