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

У меня есть набор каталогов хранения на машинах 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?
  • Могут ли gdb отлаживать корневые программы suid?
  • Членство в группах и процессы setuid / setgid
  • suid скрипт работает неправильно
  • Почему setuid не работает над исполняемым файлом?
  • Почему этот пример setUID не работает?
  • Как заставить / dev / fd запускать сценарии оболочки в sudo safe?
  • Как разрешить пользователю A удалить файл B от имени B?
  • linux setuid не работает
  • Разрешения SUID - что правильно?
  • используя бит SUID для сброса привилегий
  • Interesting Posts

    Почему Gawk в режиме совместимости разделяет записи так же, как и при расширении GNU?

    Конфигурация Host-файлов на главном узле и подчиненных узлах в системе Linux для запуска задания MPI

    Как определить фальшивый почтовый источник?

    Перенести первые N строк вывода в конец без использования временного файла

    Обновление ядра в Fedora с 16 по 17 – Как удалить неиспользуемые файлы?

    Как синхронизировать два диска (или папки) с использованием символических (или жестких) ссылок (например, rsync)?

    Проверьте, удален ли вход в систему

    Как изменить часть после root @

    Используйте пользовательскую цветовую схему в Vim

    Невозможно скомпилировать glibc для 64-битной системы

    Удаление столбцов, содержащих пробел в текстовом файле

    Синтаксис HISTTIMEFORMAT

    преимущества жесткой ссылки файла над копией файла

    Основное поведение bash

    Проблемы с Apache при попытке настроить SSL (Debian)

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