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

У меня есть набор каталогов хранения на машинах 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 для этого исполняемого файла.

  • Как настроить скрипт для запуска с правами неинтерактивно?
  • Программы setuid, похоже, не запускают setuid в TinyCore Linux
  • Может ли bash работать с uid 0 и другим euid?
  • Членство в группах и процессы setuid / setgid
  • Как suid iwconfig на Debian wheezy?
  • Какой самый безопасный способ для программной записи в файл с правами root?
  • Цель использования setuid () в программах SUID
  • установите umask (разрешения) аналогично setgid в каталоге
  • Что означает GID?
  • Разрешение исполняемого файла Unix и разрешения пользователя во время выполнения
  • Изменение UID файлов в / proc
  • Как установка бита Setuid влияет на сценарии оболочки, которые запускаются при загрузке системы, до того, как произошел какой-либо логин?
  • Interesting Posts

    grep и sed в конкретных

    Высокоуровневый пользователь на управляемом сервере Media Temple DV (Plesk)

    Преобразование / импорт плоского файла с несколькими записями, по одной переменной на строку

    Разрешить доступ к SSH, но ограничивать доступ root к определенному набору IP-адресов

    Укажите резервный файл для сломанной символической ссылки

    Два «аудиокодека» имеют 100% -ное использование мощности в PowerTOP – что это значит?

    Установленный Linux Mint в системе с двойной загрузкой. Не удается загрузить Windows 7

    Просто введите для поиска по умолчанию KDE Desktop / Activity

    Xen загружает старое ядро ​​после обновления

    Группы Linux: ограничение использования ЦП в абсолютных величинах, которые не зависят от скорости процессора

    Сервер каталога Centos / 389 сервер каталогов – все различия?

    Имеется ли в системе центральный репозиторий ключей SSH? Использует ли SSH keygen закрытый ключ в этом месте?

    Как добавить горизонтальное разделение на окно tmux, которое охватывает всю ширину родительского окна?

    Поток аудио системы через mpd

    Список названных пунктов назначения в формате PDF

    Linux и Unix - лучшая ОС в мире.