Apakah mungkin untuk menerapkan sistem pemesanan "nama" menggunakan izin file linux


10

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 /reservationsdan dengan chmod 777.

Jika pengguna johndoe melakukannya, touch /reservations/coolsiteia menunjukkan bahwa ia ingin "memiliki" nama itu "coolsite"

"Mekanisme" harus diatur sehingga,

  • johndoe dapat berubah pikiran di lain waktu, dan rm /reservations/coolsiteuntuk membatalkan pemesanan nama itu

  • pengguna lain tidak diizinkan touch /reservations/coolsite, karena johndoe memintanya terlebih dahulu.

  • Jika Anda ingin rmfile-nya, pengguna lain diperbolehkan untuk memesannya.

  • pengguna tidak dapat rm / rename / mv / etcfile orang lain

  • pengguna 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 ...


Saya tidak melihat apa pun di sini yang keluar dari peraturan. Buat "coolsite" dibuat sebagai "700" (tidak ada izin untuk grup dan lainnya) dan hanya pengguna + admin yang dapat melakukan sesuatu untuk itu. Semua yang lain mendapat izin ditolak.
Rinzwind

Jadi, secara manual menginstruksikan pengguna untuk mengingat untuk chmod 700 setelah touch?
american-ninja-warrior

1
joshsverns Saya pikir Anda bisa menegakkan itu? (dengan umask). Oh, bagus @perlduck
Rinzwind

Mengapa Anda tidak bisa memprogramnya di ruby?
pipa

Jawaban:


31

Apa yang Anda minta dari direktori /reservationsadalah bagaimana /tmpperilaku standar direktori:

Setiap pengguna dapat membuat file di sana dan hanya dia yang diizinkan untuk menghapus atau memodifikasinya. Ini dicapai dengan tbit (alias sticky bit ) dalam izin. Tidak ada pengguna yang memerlukan izin atau payung khusus.

Jadi:

chown root /reservations
chmod 1777 /reservations

itu yang kamu butuhkan. Ini chown roothanya untuk mencegah pengguna (reguler) lain dari mengutak-atik direktori itu. Itu tidak benar - benar dibutuhkan. Baca lebih lanjut tentang bit sticky di sini:

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.