Чи можливо реалізувати систему бронювання "ім'я" за допомогою дозволів на Linux


10

У мене є багатокористувацький сервер linux із 100+ користувачами в / etc / passwd

Я хотів би дозволити користувачам "забронювати" / "зарезервувати" ім'я, яке їм сподобалося (у цьому випадку субдомен, але ці деталі не мають значення)

Я створив каталог з назвою /reservationsі з chmod 777.

Якщо користувач johndoe робить, touch /reservations/coolsiteвін вказує, що хотів би "володіти" цим ім'ям "coolsite"

"Механізм" повинен бути налаштований так,

  • Пізніше у johndoe можна змінити свою думку і rm /reservations/coolsiteскасувати бронювання цього імені

  • іншому користувачеві це заборонено touch /reservations/coolsite, тому що johndoe спочатку попросив це.

  • якщо Johndoe rmйого файл, інший користувач може дозволити його забронювати.

  • користувачі не можуть використовувати rm / rename / mv / etcінші файли людей

  • Користувач johndoe може мати кілька записів, роблячи це touch /reservations/coolsite && touch /reservations/coolsite2

Чи можливо це використовувати якийсь стандартний механізм дозволів Linux?

Мені б не хотілося вдатися до цього, мої перл-навички стали іржавими з того дня, коли рубін прийшов разом з її хвилястим світлим волоссям ...


Я нічого не бачу тут, що виходить із ординарії. Створіть "coolsite" як "700" (без дозволів для групи та інших), і лише власний користувач + адміністратор може щось зробити для цього. Усі інші отримують відмову в дозволі.
Rinzwind

Отже, вручну вкажіть користувачів запам'ятати chmod 700 після touch?
американець-ніндзя-воїн

1
joshsverns Я думаю, ви можете це застосувати? (з umask). Ой добре @perlduck
Rinzwind

Чому ви не могли запрограмувати його на рубіні?
труба

Відповіді:


31

Те, що ви запитуєте в каталозі, /reservations- це саме те, як /tmpповодиться стандартний каталог:

Кожен користувач може створювати файли там, і тільки йому дозволяється видаляти або змінювати їх. Це досягається tбітом (він же липким бітом ) у дозволах. Тоді жоден користувач не потребує спеціальних дозволів або umasks.

Таким чином:

chown root /reservations
chmod 1777 /reservations

це все, що вам потрібно. Це chown rootлише для того, щоб інші (звичайні) користувачі не поспішали з цим каталогом. Це насправді не потрібно. Детальніше про клейкий шматочок читайте тут:

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.