Daftar kontrol akses
Jawaban langsungnya adalah daftar kontrol akses (ACL) . Ya, Anda dapat menemukan contoh tandingan, tetapi dalam praktiknya cukup baik (tidak seperti kemampuan menulis grup yang mengharuskan pengguna memikirkannya setiap saat). Yang mereka perlukan adalah administrator sistem (root) mendefinisikan grup, jika Anda ingin file hanya dibagikan oleh grup yang bernama (root dapat memilih untuk mendelegasikan, misalnya dengan menerima grup dari LDAP, tapi itu cerita lain).
Anda perlu pengguna yang berpartisipasi untuk memiliki umask 022. Jika mereka membuat file yang tidak dapat dibaca dunia secara rutin, skema ini tidak akan berfungsi. Tetapi jika mereka memiliki batasan umask, itu mungkin karena mereka toh tidak ingin berbagi file.
Mengaktifkan ACL
Ubuntu tidak mengaktifkan ACL secara default, jadi ada persyaratan admin satu kali. Edit /etc/fstab
menggunakan editor favorit Anda, dan ubah setiap baris yang berkaitan dengan sistem file tempat Anda ingin berbagi file: tambahkan acl
ke opsi. (Pastikan untuk tidak mengubah baris lain, dan tidak menggunakan editor yang membungkus baris panjang.) Berikut ini contoh baris dengan acl
opsi yang ditambahkan:
UUID=5e1ec7ed-face-dead-beef-c011ec7ab1e5 / ext4 errors=remount-ro,acl 0 1
Agar opsi berlaku pertama kali, gunakan perintah seperti berikut (untuk setiap sistem file):
sudo mount -o remount,acl /
Instal alat ACL dari acl
paket.
Menyiapkan direktori bersama
Agar file dibagikan oleh grup mygroup
:
setfacl -m group:mygroup:rwx /path/to/shared/root
setfacl -d -m group:mygroup:rwx /path/to/shared/root
Jika orang membuat file dan menyalinnya ke direktori bersama, file tersebut akan dapat dibaca oleh dunia (karena umask) dan siapa pun dalam grup dapat menambah dan menghapus file (karena grup dapat ditulis kelompok). Orang tidak dapat mengedit file satu sama lain, tetapi itu adalah hal yang baik atau Anda akan langsung mengalami konflik pengeditan.
Jika Anda tidak memiliki grup unix, Anda dapat menambahkan pengguna satu per satu:
setfacl -m user:bob:rwx /path/to/shared/root
setfacl -d -m user:bob:rwx /path/to/shared/root
Kontrol versi
Jika Anda ingin orang dapat mengedit file di tempat, Anda juga perlu sesuatu untuk mencegah konflik pengeditan. Itu kontrol versi.
Anda tidak memerlukan semua ini untuk berbagi repositori git. Anda tahu ada solusi seperti gitosis, jadi gunakanlah.