У меня есть многопользовательский сервер linux со 100+ пользователями в / etc / passwd
Я хотел бы разрешить пользователям «бронировать» / «резервировать» имя по своему вкусу (в данном случае поддомен , но эти детали не имеют значения)
Я создал каталог с именем /reservations
и с помощью chmod 777.
Если пользователь johndoe делает, touch /reservations/coolsite
, он указывает, что хотел бы «владеть» этим названием «coolsite»
«Механизм» должен быть настроен так, чтобы
johndoe может изменить свое мнение позже, и rm /reservations/coolsite
снять с этого имени
другому пользователю не разрешено touch /reservations/coolsite
, потому что johndoe спросил сначала.
Если Джондой rm
его файл, другой пользователь может его забронировать.
пользователи не могут rm / rename / mv / etc
файлы других людей
пользователь johndoe может иметь несколько бронирований, выполнив touch /reservations/coolsite && touch /reservations/coolsite2
Возможно ли это с помощью какого-то стандартного механизма разрешений linux?
Я не хотел бы прибегать к Perl для этого, мои навыки Perl стали ржавыми, так как день рубина появился вместе с ее волнистыми светлыми волосами ...
То, что вы запрашиваете каталог /reservations
, - это то, как ведет себя стандартный каталог /tmp
:
Каждый пользователь может создавать файлы там, и только он может удалять или изменять их. Это достигается с помощью бита t
(он же залипший бит ) в разрешениях. Ни один пользователь не нуждается в специальных разрешениях или масках.
Таким образом:
chown root /reservations
chmod 1777 /reservations
это все, что вам нужно. chown root
предназначен только для того, чтобы другие (обычные) пользователи не возились с этим каталогом. Это не действительно необходимо. Подробнее об этом можно прочитать здесь: