Saya memiliki server multi-user linux dengan 100+ pengguna di / etc / passwd
Saya ingin mengizinkan pengguna untuk "memesan" / "memesan" nama yang mereka sukai (dalam hal ini subdomain, tetapi detailnya tidak masalah)
Saya telah membuat direktori bernama /reservations
dan dengan chmod 777.
Jika pengguna johndoe melakukannya, touch /reservations/coolsite
ia menunjukkan bahwa ia ingin "memiliki" nama itu "coolsite"
"Mekanisme" harus diatur sehingga,
johndoe dapat berubah pikiran di lain waktu, dan
rm /reservations/coolsite
untuk membatalkan pemesanan nama itupengguna lain tidak diizinkan
touch /reservations/coolsite
, karena johndoe memintanya terlebih dahulu.Jika Anda ingin
rm
file-nya, pengguna lain diperbolehkan untuk memesannya.pengguna tidak dapat
rm / rename / mv / etc
file orang lainpengguna johndoe dapat memiliki beberapa pemesanan dengan melakukan
touch /reservations/coolsite && touch /reservations/coolsite2
Apakah ini mungkin menggunakan semacam mekanisme izin linux standar?
Saya akan benci untuk menggunakan perl untuk ini, keterampilan perl saya menjadi berkarat sejak hari ruby datang dengan rambut pirang bergelombang ...
sumber
touch
?umask
). Oh, bagus @perlduckJawaban:
Apa yang Anda minta dari direktori
/reservations
adalah bagaimana/tmp
perilaku standar direktori:Setiap pengguna dapat membuat file di sana dan hanya dia yang diizinkan untuk menghapus atau memodifikasinya. Ini dicapai dengan
t
bit (alias sticky bit ) dalam izin. Tidak ada pengguna yang memerlukan izin atau payung khusus.Jadi:
itu yang kamu butuhkan. Ini
chown root
hanya untuk mencegah pengguna (reguler) lain dari mengutak-atik direktori itu. Itu tidak benar - benar dibutuhkan. Baca lebih lanjut tentang bit sticky di sini:sumber