Как заставить пользователей устанавливать списки управления доступом в каталогах, которыми они не владеют?

У меня есть набор каталогов хранения на машинах Linux, все 770 / root: root (perms / owner: group), для которых я использую ACL для управления доступом пользователей. (Я не могу использовать группы unix, поскольку каталоги распределяются по сети, где группы управляются через LDAP, для которых я не являюсь администратором).

Для каждого каталога один пользователь имеет полный доступ к rwx через ACL, а все остальные имеют rx-доступ через ACL.

В настоящее время мне приходится вручную реагировать на запросы о добавлении / удалении пользователей, и мне бы хотелось, чтобы эта способность передавалась пользователям «rwx» для своих каталогов (потому что я – ленивый администратор, естественно).

Лучшим решением, которое я могу придумать, является создание скрипта / программы с корневым setuid, который проверяет статус ACL «rwx» вызывающего пользователя в данном каталоге и позволяет им добавлять / удалять пользователей ACL «rx», как в :

$ modify_acls.sh [--remove] [--add] <my_directory> <other_user> 

Есть ли более простой способ сделать это, или решение выше не работает по какой-либо причине?

2 Solutions collect form web for “Как заставить пользователей устанавливать списки управления доступом в каталогах, которыми они не владеют?”

Вместо сценария оболочки setuid рассмотрите возможность включения определенного скрипта в sudo .

Несмотря на то, что он чаще всего используется таким образом, sudo не ограничивается «разрешать кому-либо выполнять какую-либо программу с правами root». Вы можете легко настроить «пользователю A, B и C разрешено выполнять только этот конкретный скрипт как root» в /etc/sudoers . Для получения дополнительной информации см. man sudoers .

На самом деле нет преимущества использования sudo вместо скрипта setuid, за исключением того, что в системах, где скрипты setuid полностью отключены по соображениям безопасности, вторая альтернатива просто не работает вообще. Вы все равно можете написать собственный двоичный файл setuid, но вставка строки в sudoers проще, быстрее и проще изменить позже, когда вы хотите добавить или удалить пользователей.

Использование сценария оболочки, вероятно, не будет работать, поскольку скрипты оболочки setuid обычно не поддерживаются в Linux.

Обходным решением было бы написать небольшой исполняемый файл In C, чтобы предоставить требуемые функции и setuid root для этого исполняемого файла.

  • Set-uid исполняемый и результирующий пользователь процесса
  • Разрешить setuid для сценариев оболочки
  • Почему mac os x не устанавливает бит uid для / usr / bin / passwd
  • root setuid не работает
  • как записать команду, выполняющую программу suid
  • Программа python работает от имени root для открытия URL-адресов через обычного пользователя
  • Как заставить / dev / fd запускать сценарии оболочки в sudo safe?
  • Отладить двоичный файл setuid как не root
  • Какой самый безопасный способ для программной записи в файл с правами root?
  • Что именно отличает пользователя root от каждого другого пользователя?
  • Как suid iwconfig на Debian wheezy?
  • Linux и Unix - лучшая ОС в мире.