Untuk mengatur grup, berikan /var/www
setgid sedikit:
chgrp www-data /var/www
chmod g+s /var/www
Untuk juga menyesuaikan subdirektori:find /var/www -type d -exec chmod g+s {} +
Ini akan membuat semua file yang baru dibuat mewarisi grup direktori induk, bukan milik pengguna.
Untuk menyetel izin grup default, Anda harus menggunakan ACL . Tetapkan ACL "default":
setfacl -m "default:group::rwx" /var/www
Untuk juga menyesuaikan subdirektori:find /var/www -type d -exec setfacl -m d:g::rwx {} +
Catatan:Sistem file harus mengaktifkan dukungan ACL. Terkadang aktif secara default; di ext3 atau ext4 Anda mungkin mendapatkan "Operasi tidak didukung", dalam hal ini harus diaktifkan secara manual:
-
Untuk sistem file yang terpasang saat ini:
mount -o remount,acl /
-
Secara permanen – satu dari metode di bawah ini:
-
pada level fstab:edit
/etc/fstab
untuk memilikiacl
di bidang opsi -
pada tingkat sistem file:
tune2fs -o acl /dev/diskname
-
Ini mungkin membuat beberapa orang terjebak dengan jawaban 'grawity' di setgid, jika grup folder berbeda dari milik Anda, Anda mungkin perlu menjalankan chmod sebagai root tetapi Anda tidak akan mendapatkan kesalahan yang menunjukkan bahwa Anda perlu melakukan ini.
$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar 9 10:44 dir
$ chmod g+s dir #no errors
$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar 9 10:44 dir #but nothing changed
$ touch dir/nosudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar 9 10:51 nosudo #and the group is still wrong
$ sudo chmod g+s dir
$ ls -ld dir
drwxrwsr-x 2 luke testgroup 4096 Mar 9 10:44 dir #the setgid bit is now on
$ touch dir/withsudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar 9 10:51 nosudo
-rw-rw-r-- 1 luke testgroup 0 Mar 9 10:51 withsudo #and group is set