Можно ли реализовать систему бронирования "имя", используя разрешения файла Linux

У меня есть многопользовательский сервер Linux с более чем 100 пользователями в /etc/passwd

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

Я создал каталог под названием /reservations и с chmod 777.

Если пользователь johndoe делает, touch /reservations/coolsiteон указывает, что хотел бы "владеть" этим названием "coolsite"

"Механизм" должен быть настроен так, чтобы

  • Джондо может изменить свое мнение позже, и rm /reservations/coolsite снять это имя

  • другому пользователю запрещено touch /reservations/coolsiteпотому что Джондо попросил об этом первым.

  • если Джондо rm его файл, другой пользователь может забронировать его.

  • пользователи не могут rm / rename / mv / etc файлы других людей

  • Пользователь johndoe может сделать несколько заказов, выполнив touch /reservations/coolsite && touch /reservations/coolsite2

Возможно ли это с помощью какого-то стандартного механизма разрешений Linux?

Я не хотел бы прибегать к Perl для этого, мои навыки Perl стали ржавыми, так как день рубин пришел вместе с ее волнистые светлые волосы...

1 ответ

Что вы просите для каталога /reservations именно так, как стандарт /tmp Каталог ведет себя:

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

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

chown root /reservations
chmod 1777 /reservations

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

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