Itulah masalah dengan sistem multi-pengguna, terutama jika Anda memiliki lebih dari satu. ;) Tidak ada cara yang benar-benar baik untuk melakukan apa yang Anda inginkan. Pendekatan yang muncul dalam pikiran adalah
- memiliki UID yang sama untuk akun Anda di setiap mesin yang Anda gunakan drive eksternal Anda (sebenarnya tidak layak, karena kemungkinan besar tidak semua mesin berada di bawah kendali Anda)
- menggunakan sistem file yang tidak mengetahui pemilik / grup conecpt (FAT atau NTFS datang ke pikiran, tapi ... aaah, tidak)
Pendekatan yang paling efektif adalah kembali ke praktik umum. Pada sebagian besar (setidaknya) sistem Linux, terdapat beberapa kelompok yang biasanya memiliki GID umum. Sebagai contoh users
, yang memiliki GID 100
di sebagian besar distro Linux. Jika Anda dapat mengatur agar akun pengguna Anda masing-masing dalam grup ini, Anda bisa
- buat semua file dan direktori di drive Anda yang dimiliki oleh grup ini
- entah bagaimana mengatur untuk memiliki izin grup yang sesuai pada file dan direktori tersebut
- entah bagaimana mengatur agar file baru dibuat dengan resp-kepemilikan grup yang sesuai. izin.
Poin pertama dan kedua mudah dicapai ( chown
, chmod
). Poin ketiga agak rumit.
Bagian "kepemilikan grup" relatif mudah: Anda dapat mengatur bit SGID pada semua direktori pada drive. Bit SGID yang diterapkan ke direktori memberitahu kernel untuk berperilaku dengan cara BSDish: BSD membuat setiap file / direktori yang dibuat di bawah direktori tertentu yang dimiliki grup bukan oleh grup utama dari proses membuat file / direktori (seperti Linux), tetapi oleh pemilik direktori induk.
Bit izin agak sulit. Izin file / direktori yang baru dibuat (antara lain) dipengaruhi oleh umask
, bit-mask yang memberitahu bit mana yang tidak diatur jika tidak secara eksplisit dinyatakan. Nilai umum umask
misalnya adalah 022
, yang berarti bahwa bit-bit penulisan untuk »grup« dan »lainnya« biasanya tidak boleh disetel. Anda dapat mengubah umask
ke 002
, memberi tahu Anda tidak ingin izin tulis dihapus untuk grup tetapi downside adalah bahwa Anda tidak dapat menetapkan nilai ini berdasarkan direktori dan Anda biasanya tidak ingin memiliki izin menulis untuk kelompok utama Anda disetel untuk setiap file yang Anda buat.
Ini dapat diselesaikan dengan menggunakan ACL: Dalam ACL Anda dapat mengatur mask
dan default
mengatur izin, yang berlaku untuk semua file dan direktori yang dibuat di dalam direktori dengan set ACL ini. Jadi salah satu solusi yang mungkin untuk masalah Anda adalah
- pastikan Anda adalah anggota dari grup umum di semua sistem yang Anda ingin gunakan drive eksternal Anda
- buat semua file dan direktori pada drive Anda yang dimiliki oleh grup ini dan setel bit SGID pada semua direktori
- ubah ACL dari semua direktori untuk menyertakan mask dan izin default yang memberitahu kernel untuk membuat setiap file / direktori baru dengan hak akses tulis yang ditetapkan untuk grup.
Lihat setfacl(1)
, dan acl(5)
untuk lebih jelasnya.