Di server saya, saya memiliki direktori /srv/svn
.
Apakah mungkin untuk mengatur direktori ini untuk memiliki kepemilikan grup ganda, misalnya devFirmA
, devFirmB
dan devFirmC
?
Intinya adalah, saya ingin subversion
kontrol versi mengelola beberapa pengguna di beberapa repositori dan saya tidak tahu cara menggabungkan /srv/svn
, direktori root repositori, izin. Saya punya, misalnya, tiga perusahaan FirmA
,, FirmB
dan FirmC
. Sekarang, di dalam /srv/svn
saya telah membuat tiga direktori, FirmA
, FirmB
, FirmC
dan di dalamnya saya buat repositori untuk setiap proyek dan sekarang saya tidak tahu bagaimana membangun skema izin karena semua elementes dalam /srv/svn
dimiliki oleh root:root
, yang tidak ok, atau aku salah?
permissions
group
subversion
KernelPanic
sumber
sumber
Jawaban:
Ini adalah masalah yang sangat umum, jika saya memahaminya secara akurat, dan saya menjumpainya terus-menerus. Jika saya menggunakan ACL untuk setiap masalah pengelompokan sepele, saya akan memiliki banyak sistem yang tidak dapat dikelola. Mereka menggunakan praktik terbaik ketika Anda tidak bisa melakukannya dengan cara lain, tidak untuk situasi ini. Ini adalah metode yang sangat saya rekomendasikan.
Pertama, Anda perlu mengatur umask Anda ke 002, ini agar sebuah grup dapat berbagi dengan sendirinya. Saya biasanya membuat file seperti
/etc/profile.d/firm.sh
, dan kemudian menambahkan perintah uji dengan umask.[ $UID -gt 10000 ] && umask 002
Selanjutnya Anda perlu mengatur direktori ke grup masing-masing,
Akhirnya Anda perlu mengatur bit SGID dengan benar, sehingga grup akan selalu tetap pada yang Anda setel. Ini akan mencegah file tertulis diatur ke GID penulis.
Sekarang akhirnya jika Anda ingin mencegah direktori diakses oleh pengguna lain.
sumber
svnadmin
:sudo usermod -a -G FirmA,FirmB,FirmC svnadmin
Ini akan menambahsvnadmin
semua grup ini. Karena file dalam semua grup ini mengaktifkan 'tulis grup' (chmod 664
melakukan ini), Anda, plus firmX, akan menjadi satu-satunya penulis file yang dimiliki oleh firmX.find /srv/svn/FirmA -type f -print0 | xargs -0 chmod ug+rw,o+r,o-wx
Anda hanya dapat memiliki satu grup sebagai pemilik .
Namun menggunakan daftar kontrol akses Anda dapat menentukan izin untuk grup lain.
Periksa apakah Anda telah menginstal ACL mengeluarkan perintah
getfacl
. Jika sistem Anda belum menginstal ACL, instal alat-alat baris perintah yang ada dalamacl
paket dengan:sudo apt-get install acl
Dengan
getfacl
Anda dapat membaca informasi ACL dari direktori atau file lain, dan dengansetfacl
Anda dapat menambahkan grup ke file.Sebagai contoh:
Menambahkan grup
devFirmB
dengan r ead, w rite, e x ecute ke direktori/srv/svn
.Jika Anda juga ingin file yang dibuat dalam direktori itu dimiliki oleh beberapa grup, atur ACL sebagai ACL default. The
X
dalam sarana masuknya kelompok default “memungkinkan eksekusi jika dieksekusi oleh pemiliknya (atau siapa pun)”.sumber
Tidak mungkin memiliki file yang dimiliki oleh banyak grup Linux dengan izin Unix tradisional. (Namun, dimungkinkan dengan ACL .)
Tetapi Anda dapat menggunakan solusi berikut dan membuat grup baru (mis. Dipanggil
devFirms
) yang akan mencakup semua pengguna grupdevFirmA
,devFirmB
dandevFirmC
.Anda membuat grup pengguna baru dengan:
Pertama, Anda mungkin harus menginstal
id-utils
untuk mendapatkanlid
perintah-:Kemudian Anda dapat menjalankan baris kode berikut untuk dengan mudah menyalin semua pengguna
SOURCEGROUP
untukTARGETGROUP
. Tentu saja Anda harus menjalankan perintah sekali untuk setiap grup yang ingin Anda salin. Jangan lupa ganti placeholder dengan huruf kapital dengan nama grup yang sebenarnya.Jadi dalam kasus Anda, Anda harus menjalankan perintah (semua baris sekaligus):
Perhatikan bahwa perintah ini hanya menyalin semua pengguna yang saat ini menjadi anggota grup sumber. Setiap pengguna yang ditambahkan kemudian juga harus ditambahkan secara manual ke grup umum Anda dengan
adduser
perintah. Ganti sekali lagi placeholder yang dikapitalisasi dengan nama pengguna dan grup yang sebenarnya (devFirms
):Terima kasih kepada Justin Ethier untuk jawabannya di Unix & Linux.SE: Tambahkan semua pengguna dari satu grup ke grup lain?
sumber
Tidak, ini tidak mungkin.
Setiap file (dan juga direktori) hanya dapat memiliki satu pengguna dan satu grup.
sumber
Untuk memberikan hak yang berbeda kepada banyak grup atau pengguna, gunakan perintah berikut (Diuji pada RHEL 6 & 7):
Untuk membuat pemilik grup baru:
Untuk memeriksa pengaturan ACL saat ini:
sumber