Saya di Mac. Saya ingin membuatnya sehingga setiap file / folder baru yang dibuat dalam folder tertentu memiliki izin yang sama (bukan grup, yang sudah diurus) seperti pada direktori induk. Di Linux, saya biasanya menggunakan setfacl, tetapi sepertinya chmod di Mac mungkin bisa melakukan apa yang saya cari. Saya sudah membaca halaman manual untuk chmod, tetapi saya masih tidak tahu cara memformat perintah dengan benar untuk mendapatkan yang saya inginkan.
23
Jawaban:
Pertama, sedikit latar belakang untuk menjelaskan apa yang terjadi: File di OS X dapat memiliki dua jenis pengaturan izin yang sangat berbeda diterapkan pada mereka: POSIX dan ACL.
File selalu (well, hampir selalu) memiliki izin POSIX yang diterapkan, terdiri dari pemilik, grup, dan lainnya (dengan beberapa kombinasi baca, tulis, dan eksekusi untuk masing-masing). Tidak ada cara untuk mengontrol pewarisan izin POSIX: item baru selalu dimiliki oleh pengguna apa pun yang menciptakannya, tugas grup diwarisi dari folder tempat mereka berada, dan aksesnya ditentukan oleh umask (yang hampir selalu: pemilik mendapat akses penuh, grup dan yang lainnya hanya baca + eksekusi untuk folder). Jadi izin POSIX tidak akan berfungsi untuk apa yang Anda coba lakukan.
File juga dapat memiliki daftar kontrol akses (ACL) yang diterapkan. Ini adalah daftar entri kontrol akses (ACE), yang masing-masing berlaku untuk pengguna atau grup, menentukan jenis akses (dengan sangat rinci), apakah mereka diizinkan atau ditolak, dan apakah ACE juga harus disalin ke item yang dibuat di dalam folder. Bagian terakhir itu adalah bagian yang membuat ini berguna untuk Anda; Anda perlu membuat ACE pada folder yang menentukan grup yang Anda inginkan, jenis akses yang Anda inginkan, dan pewarisan penuh.
chmod pada OS X dapat memanipulasi ACE dengan opsi izin + a, -a, dll. Jika saya mengerti apa yang Anda inginkan, Anda akan menggunakan ini (dengan nama grup dan jalur folder Anda diganti) untuk membuat ACE:
Perhatikan bahwa warisan bukan "hidup", artinya tidak berlaku untuk item yang dibuat sebelum Anda menetapkan ACE, dan itu tidak berlaku untuk item yang dibuat di tempat lain dan kemudian dipindahkan ke folder. Anda dapat menerapkannya pada konten yang ada dengan menggunakan -R (
chmod -R +a ...
). Saya tidak tahu cara (kecuali alat admin server Apple) untuk memaksakan pewarisan item yang dipindahkan ke folder.sumber
ls -l
hanya menampilkan izin POSIX (meskipun tanda "+" setelah izin menunjukkan bahwa ada hadiah ACL). Gunakanls -le
untuk menunjukkan ACL juga.chmod +a ...
perintah, maka saya menciptakan abc.txt dalam folder. Beralih ke pengguna lain dan mengedit dengan TextEdit, file diindikasikan sebagai Terkunci dan tidak dapat diedit.Coba tambahkan
-R
ke perintah @ gordon, seperti:The
-R
pilihan kehendak (seperti dicatat di sini ):Mengubah hierarki file tampaknya seperti yang Anda cari (untuk file baru, direktori, dll.).
Anda juga dapat melihat pos Apple.SE ini , yang mencakup situasi yang agak mirip dengan milik Anda (kecuali yang berkaitan dengan direktori bersama), yang mengharuskan
sudo
ditempelkan di bagian depan.sumber
Ini (-R) bukan yang ingin dilakukan kebanyakan orang; sebagian besar waktu mereka lebih suka untuk mengubah ACL pada direktori paling atas dan melakukan sesuatu yang ajaib untuk memaksa semua objek yang terkandung untuk mewarisi bendera sesuai dengan ACL yang mereka tentukan pada akar sub-pohon itu. Ini jauh lebih elegan karena ACL pada objek akan mengurutkan ACE yang diwariskan ini sesuai dengan kebijakan.
Dan ya, saya harus menulis skrip python untuk melakukan ini, saya juga tidak menemukan sesuatu yang sesuai.
sumber
chmod + ai, i = mewarisi aturan acl
sumber
Pada Mac coba gunakan PathFinder , membuatnya mudah untuk mengatur ACL dan POSIX. Jika Anda meng-hosting WordPress di Server Mac Anda juga harus mengatur
define('FS_METHOD', 'direct');
di wp-config.php sehingga menginstal plugins dan meningkatkan tidak akan meminta Anda untuk rincian FTP.Jadi pada dasarnya Anda menyimpan izin POSIX default, dan menambahkan pengguna _www (bukan grup) ke ACL, lalu klik Propagate Permission di jendela ACL.
sumber