Izin untuk file baru di direktori bersama

31

Kami baru saja mendapat iMac baru menggunakan /Users/Shareddirektori untuk menyimpan aset media (gambar, audio, video) yang kami inginkan dapat diakses oleh semua pengguna di mesin. Setelah menyalin semua file pada awalnya, kami mengatur izin yang diinginkan dan kemudian menerapkan izin yang sama untuk semua konten direktori secara rekursif. Ini berfungsi dengan baik, kecuali ketika seseorang membuat file atau direktori baru, itu tidak memiliki izin yang sama dan kami harus mengulangi seluruh proses izin sebelum semua orang dapat mengaksesnya.

Apakah ada cara kita dapat mengatur izin untuk semua file / direktori baru yang dibuat dalam direktori itu?

Daniel Standage
sumber
Atribut yang diperluas akan memungkinkan Anda untuk mengatur beberapa izin akses yang sangat liberal, dan memberitahu mereka untuk menyebar di dalam direktori, dan terus melakukannya pada kreasi baru, tetapi untuk kehidupan saya, saya tidak dapat menemukan petunjuk. Saya hanya dapat melakukannya di Server OSX menggunakan Alat Admin Server, yang saya anggap bukan pilihan yang layak di sini?
Jason Salaz
Nggak. Kami hanya memiliki akses ke cakram OS yang menyertai iMac.
Daniel Standage
1
Jika Anda senang bekerja di Terminal, ini mungkin jawaban yang Anda cari.
boehj

Jawaban:

32

Anda tidak dapat melakukan ini dengan izin gaya POSIX tradisional, tetapi Anda bisa dengan entri kontrol akses yang dapat diwarisi. Untuk mengizinkan akses baca + tulis untuk seluruh grup "staf" ke semua yang ada di / Pengguna / Dibagikan / benar-benar dibagi, Anda akan menggunakan:

sudo chmod -R +a "staff allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" /Users/Shared/reallyshared

Bagian ini file_inherit,directory_inheritberarti bahwa entri kontrol akses ini akan secara otomatis ditambahkan ke file & folder baru yang dibuat di dalam folder ini, tetapi itu tidak secara otomatis berlaku untuk item yang sudah ada di sana (itu sebabnya saya menambahkan -Rbendera ke chmod- yang berlaku untuk semua yang saat ini dalam folder), dan itu tidak akan diterapkan pada item yang dibuat di tempat lain dan kemudian pindah ke folder ini (saya tidak tahu cara mengatasinya, maaf).

Gordon Davisson
sumber
Saya akan sangat senang menemukan cara untuk memiliki pekerjaan ini bahkan untuk file yang dipindahkan ke direktori bersama. Sangat frustasi untuk memiliki file dalam direktori bersama yang akhirnya tidak benar-benar sepenuhnya dibagikan.
Radven
Ini masih tidak memungkinkan folder untuk ditulis jika izin posix tidak mengizinkannya. Yaitu saya membuat folder ini di Finder: drwxr-xr-x+ 2 User staff 68 Dec 15 14:10 untitled folder+ pada akhirnya berarti punya ACL diperpanjang diterapkan menggunakan perintah Anda di atas, tetapi Windows masih mengatakan izin ditolak jika saya mencoba menulis file ke folder ini. Hanya chmod g+w untitled\ folderizinkan saya menulis untuk itu. Mungkin karena saya menginstal Samba untuk mengatasi implementasi SMB baru yang mengerikan dari OSX.
Chris Dragon
@ ChrisDragon: kedengarannya seperti samba tidak benar menghormati ACL. Saya menemukan saran di sini untuk menambahkan nt acl support = noke [Global]bagian /etc/smb.conf, tapi saya tidak yakin itu masih relevan dalam versi samba yang terkini.
Gordon Davisson
4

Pendekatan lain adalah dengan menggunakan Terminal (alias shell atau command prompt) untuk membuat / mengedit (harus dilakukan sebagai super-user, lihat sudo) file:
/etc/launchd-user.conf
menambahkan baris:
umask 000
simpan dan reboot. File / folder baru (termasuk file yang diubah oleh simpan sebagai) akan memungkinkan semua orang membaca / menulis.

Ini berfungsi dengan mengubah izin pembuatan file default untuk program, sedangkan pendekatan ACL bekerja dalam hal aturan akses yang terikat pada file dan folder tertentu.

Tanpa perubahan ini, file dibuat memungkinkan pengguna: baca-tulis, grup & lainnya: hanya baca.

Jika Anda berbagi di antara banyak komputer, Anda perlu melakukan ini untuk semua komputer yang akan menggunakan pembagian tersebut.

Jika Anda memiliki file dan folder yang ada di area bersama, Anda harus membuatnya semua dapat dibaca / ditulis oleh semua orang menggunakan:
sudo chmod -R og+w <shared-folder-name>

Perintah membaca dalam bahasa Inggris sebagai mode perubahan, berulang melalui semua folder dan file, izin grup & lain menambahkan akses tulis, mulai dari folder dengan.

Pendekatan ini disebutkan dalam forum untuk bekerja setidaknya 10,6 dan masih bekerja pada 10,7.

Faktor-faktor lain masih memengaruhi akses ke konten. Misalnya, izin yang diatur di panel kontrol Berbagi, izin folder rumah / ACL, dan saat menggunakan Terminal, umask apa pun yang berlaku untuk shell.

Cari izin file umask dan Posixuntuk detail tentang konsep Unix ini. Dalam penulisan, direktori kata adalah Unix yang identik dengan folder. Anda juga akan menemukan istilah UID dan GID: ID pengguna dan grup, yang menentukan kepemilikan Posix dari program yang sedang berjalan (proses). Perhatikan bahwa UID dan GID adalah angka yang mungkin sama atau berbeda untuk nama pengguna tertentu di komputer yang berbeda. Angka-angka ini ditetapkan untuk nama dalam urutan akun yang dibuat pada komputer tertentu, biasanya dimulai dengan ID 501. Jaringan rumah tidak memiliki mekanisme untuk menyelaraskan penugasan ini di seluruh komputer. Oleh karena itu pada jaringan berbagi file mungkin tampak milik pengguna yang berbeda karena ID pengguna untuk pengikatan nama pengguna ditentukan dari perspektif komputer mengakses file. Jadi berbagi benar-benar selalu memungkinkan setiap orang untuk mengakses file ke berbagai tingkatan setiap orang. Dengan kata lain, izin "lain" Posix adalah batas tidak terbatas pada akses mulai dari memungkinkan tingkat akses yang cukup dapat diprediksi tetapi tampaknya tidak pasti tergantung pada ID pengguna yang ditetapkan pada komputer yang berbeda. Hal ini menyebabkan variasi pengalaman yang tampaknya tidak masuk akal, di mana pada beberapa jaringan, misalnya pengaturan dengan hanya satu akun pengguna yang pernah dibuat pada setiap Mac, akan dapat dibagikan tanpa izin tweak karena semua akun akan memiliki UID yang sama (501, tidak ada apa pun nama akunnya) sedangkan jaringan lain yang menggunakan beberapa akun pengguna per Mac akan langsung melihat masalah. Jadi beberapa kelompok tidak akan pernah berjuang dengan ini, sedangkan yang lain mungkin melihat masalah yang berkembang dari waktu ke waktu, atau masalah yang muncul / hilang secara spontan,

Ini adalah misteri mengapa Apple telah meninggalkan cacat kegunaan bernanah dalam konfigurasi seperti itu mudah untuk mengaktifkan kemampuan berbagi file.

Pada disk eksternal, masalah ini diatasi dengan opsi "Abaikan izin pada volume ini". Mungkin ada fitur serupa untuk berbagi file apel, tetapi di mana itu.

Jika Anda menjalankan konfigurasi layanan Samba sendiri, ada mekanisme lain untuk menangani masalah ini, tetapi Samba sama sekali tidak mudah digunakan.

Kawat
sumber
/etc/launchd-user.conf sudah tidak digunakan lagi launchctl. Lihat support.apple.com/en-us/HT201684
Jess Bowers