Можно ли реализовать & ldquo; имя & rdquo; система бронирования с использованием разрешений файла linux

У меня есть многопользовательский сервер 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 стали ржавыми, так как день рубина появился вместе с ее волнистыми светлыми волосами ...

10
задан 30 December 2017 в 00:30

1 ответ

То, что вы запрашиваете каталог /reservations, - это то, как ведет себя стандартный каталог /tmp:

Каждый пользователь может создавать файлы там, и только он может удалять или изменять их. Это достигается с помощью бита t (он же залипший бит ) в разрешениях. Ни один пользователь не нуждается в специальных разрешениях или масках.

Таким образом:

chown root /reservations
chmod 1777 /reservations

это все, что вам нужно. chown root предназначен только для того, чтобы другие (обычные) пользователи не возились с этим каталогом. Это не действительно необходимо. Подробнее об этом можно прочитать здесь:

31
ответ дан 30 December 2017 в 00:30

Другие вопросы по тегам:

Похожие вопросы: