Saya memiliki direktori bernama data
. Lalu saya menjalankan skrip di bawah id pengguna 'robot'. robot menulis ke data
direktori dan memperbarui file di dalamnya. Idenya data
terbuka bagi saya dan robot untuk memperbarui.
Jadi saya mengatur grup izin dan pemilik seperti ini
drwxrwxr-x 2 me robot-grp 4096 Jun 11 20:50 data
tempat saya dan robot milik 'robot-grp'. Saya mengubah izin dan grup pemilik secara rekursif seperti direktori induk.
Saya secara teratur mengunggah file baru ke dalam data
direktori menggunakan rsync
. Sayangnya, file baru yang diunggah tidak mewarisi izin direktori induk seperti yang saya harapkan. Sebaliknya terlihat seperti ini
-rw-r--r-- 1 me users 6 Jun 11 20:50 new-file.txt
Ketika robot mencoba memperbarui new-file.txt
, gagal karena kurangnya izin file.
Saya tidak yakin apakah pengaturan umask membantu. Di anycase file baru tidak benar-benar mengikutinya.
$ umask -S
u=rwx,g=rx,o=rx
Saya sering dikacaukan oleh izin file Unix. Apakah saya memiliki rencana yang tepat? Saya menggunakan lenny Debian.
sumber
sudo setfacl -Rm g:users:rwX,d:g:users:rwX /var/www/logs_or_something
. Punya masalah dengan tes PHPUnit. Setelah membuat file log dari menjalankan tes apache, penggunawww-data
tidak dapat menulis / membacanya.setfacl
halaman manual ,-b
atau--remove-all
menghapus ACL yang diperluas.setfacl -Rm g:users:rwX,d:g:users:rwX data/
di akhir/etc/fstab
?defaults
kedefaults,acl
.setfacl
adalah perintah yang harus Anda jalankan dari terminal.data/
harus diganti oleh jalur ke direktori yang ingin Anda ubah.Menandai direktori setgid (
g+s
) akan membuat file baru mewarisi kepemilikan grup dari direktori, tetapi-g
opsi rsync akan berusaha menimpa ini.sumber
Jawaban lain berlaku dalam kasus umum, tetapi ketika Anda menyebutkan bahwa rsync adalah sumber masalah, Anda mungkin hanya perlu menyesuaikan permintaannya.
Sebagai permulaan,
-a
bendera populer membuat izin menyalin rsync; gunakan-r
istead of-a
atau add-no-p
(tanpa sinkronisasi izin) dan-no-g
(tanpa sinkronisasi grup). Rsync juga mendukung--chmod
flag untuk mengubah izin pada file yang baru dibuat.sumber
Umask Anda salah untuk izin yang Anda inginkan. Anda menginginkan umask 002. Saat ini Anda memiliki umask 022. Juga, komentar tentang membuat direktori setgid sudah benar, tetapi saya tidak yakin apakah kepemilikan grup file adalah sesuatu yang ingin Anda ubah atau tidak.
Izin file Unix sebenarnya model yang sangat sederhana. Saya menemukan ACL benar-benar membingungkan diri saya sendiri. :-)
sumber