Sebagian besar turunan unix dapat menyalin ACL dari satu file ke file lain dengan:
getfacl filename1 | setfacl -f - filename2
Sayangnya Mac OS X tidak memiliki perintah getfacl dan setfacl, karena mereka telah memasukkan penanganan ACL ke chmod. chmod -E menerima daftar ACL di stdin, tapi saya belum menemukan perintah yang akan memuntahkan ACL dalam format yang sesuai di stdout. Yang terbaik yang saya hasilkan adalah:
ls -led filename1 | tail +2 | sed 's/^ *[0-9][0-9]*: *//' | chmod -E filename2
Apakah ada solusi yang lebih kuat?
Pertanyaan bonus: apakah ada cara yang baik untuk melakukannya dengan Python, tanpa menggunakan modul apa pun yang tidak dikirimkan dengan 10.6?
mac-osx
access-control-list
chmod
MagerValp
sumber
sumber
getfacl
/setfacl
. Cukup luar biasa. github.com/jvscode/getfacl berusia 10 tahun. Saya belum bisa membuatnya berfungsi. serverfault.com/a/303752/104173 terlihat rumit, dan saya tidak jelas apakah ini mencoba untuk menggantiget/setfacl
fungsionalitas. Saya mengerti bahwa macOS bukan platform server, tetapi masih bisa mengalami gangguan keamanan. Apakah layak memulai kembali percakapan ini di apple.stackexchange.com ?Jawaban:
ls -e
Cetak Access Control List (ACL) yang terkait dengan file, jika ada, dalam output panjang (-l).ini memberikan hasil seperti ...
Secara pribadi, saya memiliki "ekspor" di
~/.bash_profile
yang
chmod
memungkinkan ...sudo chmod + a "izinkan localadmin $ DIR_ALL" / APPBUNDLE
Dari
chmod
halaman manual, ada sedikit info ini ... yang mengisyaratkan bahwa memang mungkin untuk melakukan sesuatu seperti yang Anda jelaskan .."ACL dimanipulasi menggunakan ekstensi ke tata bahasa mode simbolik. Setiap file memiliki satu ACL, yang berisi daftar entri yang diurutkan. Setiap entri mengacu pada pengguna atau grup, dan memberikan atau menolak satu set izin. Dalam kasus di mana pengguna dan grup ada dengan nama yang sama, nama pengguna / grup dapat diawali dengan "pengguna:" atau "grup:" untuk menentukan jenis nama. "
Juga, saya akan berteriak kepada BatchMod , seorang oldie, tetapi goodie untuk ACL, serta TinkerToolSystem .
sumber
sudo chmod +a "localadmin allow $DIR_ALL" /APPBUNDLE
(mengganti nama pengguna danallow
)Anda harus dapat
stat
memformat outputnya dengan cara yang sesuai.sumber
Mungkin lihat di https://github.com/jvscode/getfacl .
sumber
setfacl
(hanyagetfacl
), dangetfacl
fungsinya tampaknya sangat terbatas. Sayangnya saya belum menemukan solusi yang lebih baik.