Asumsikan umask saya adalah 0077.
Saya memiliki direktori,, foo
yang ingin saya peroleh izin khusus untuknya. Semua file yang saya buat foo
harus dapat dibaca dunia, dan semua direktori harus dapat dibaca dan dieksekusi.
Saat ini, jika saya membuat file, itu akan menjadi 0600, dan sebuah direktori akan menjadi 0700:
$ cd foo/
$ touch file
$ mkdir directory
$ ls -l
drwx------ 2 nfm nfm 4096 2012-01-12 16:16 directory
-rw------- 1 nfm nfm 0 2012-01-12 16:15 file
Saya ingin file menjadi 0644, dan direktori 0755, terlepas dari umask saya:
drwxr-xr-x 2 nfm nfm 4096 2012-01-12 16:16 directory
-rw-r--r-- 1 nfm nfm 0 2012-01-12 16:15 file
Bagaimana saya bisa mencapai ini?
linux
permissions
access-control-list
umask
stickmangumby
sumber
sumber
Jawaban:
Ya, ACL dapat melakukan ini.
Pastikan sistem file Anda sudah terpasang dengan acl. Untuk memeriksanya, ketik
mount
. Anda dapat melihat 'acl' terdaftar di antara izin lainnya, misalnya:Jika tidak di-mount dengan acl, buka / etc / fstab, dan tambahkan 'acl' ke daftar opsi:
Sekarang, pasang kembali sistem file yang sedang berjalan dengan opsi baru:
Instal utilitas acl. Di ubuntu / debian, ini adalah:
Teman baru Anda adalah
setfacl
dangetfacl
. Gunakansetfacl
untuk mengubah acl default untuk direktori:-d
set default,-m
ubah acl, dano:r
beri "other" hak untuk membaca. Pengaturan default pada direktori kira-kira setara dengan pengaturan setgid pada direktori, tetapi alih-alih file yang baru dibuat mewarisi grup, mereka mewarisi acl. Bersama-sama, setgid dan acl dapat menjadi kuat, karena Anda dapat memberikan izin default ke grup, dan mendapatkan file yang baru dibuat milik grup itu, untuk umask per-direktori berbasis grup yang efektif.Periksa pekerjaan Anda:
ls -l
sekarang seharusnya menunjukkan "+" tambahan yang menunjukkan keberadaan acl di samping izin file standar.Anda bisa mendapatkan info detail tentang acl menggunakan
getfacl
.sumber
setfacl
dangetfacl
mengembalikan hasil yang diharapkan, tetapi hanya direktori (bukan file) dalam direktori induk mewarisi acl, dan bahkan kemudian umask saya lebih diutamakan daripada default (jika mereka tidak dapat dibaca dunia,default:other::r--
jangan biarkan pengguna lain akses mereka). Apakah saya melewatkan sesuatu yang jelas?Anda juga bisa memaksa umask untuk direktori dengan menyetel properti ACL mask seperti ini:
sumber
Cukup instal OnDir dan konfigurasikan dengan benar sesuai dengan kebutuhan Anda. Saya telah menjawab masalah serupa yang ada di sini .
sumber