Как заменить setuid возможностями файловой системы

Вдохновленный этим вопросом, вот последующее:

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

Теперь кажется, что есть интересная идея заменить setuid на различные, более безопасные средства.

Как?

One Solution collect form web for “Как заменить setuid возможностями файловой системы”

Возможности файловой системы в Linux были добавлены, чтобы обеспечить более мелкозернистый контроль, чем позволяет только setuid. С setuid это полная эскалация эффективных привилегий для пользователя (обычно root). В man-странице возможностей (7) представлено следующее описание:

В целях выполнения проверок разрешений традиционные реализации Unix различают две категории процессов: привилегированные процессы (эффективный идентификатор пользователя – 0, называемый суперпользователем или root) и непривилегированные процессы (эффективный UID которого отличен от нуля). Привилегированные процессы обходят все проверки прав на ядро, а непривилегированные процессы подвергаются полной проверке разрешений на основе учетных данных процесса (обычно: эффективный UID, эффективный GID и дополнительный список групп).

Начиная с ядра 2.2, Linux делит привилегии, традиционно связанные с суперпользователем, на отдельные единицы, известные как возможности, которые могут быть независимо включены и отключены. Возможности – атрибут per-thread.

Если для приложения требуется возможность вызова chroot (), который обычно разрешен только для root, CAP_SYS_CHROOT может быть установлен на двоичном, а не на setuid. Это можно сделать с помощью команды setcap:

 setcap CAP_SYS_CHROOT /bin/mybin 

Начиная с версии RPM версии 4.7.0 , возможности могут быть установлены на упакованные файлы с использованием %caps .

В Fedora 15 была выпущена цель удаления всех бинарных файлов setuid, отслеживаемых в этом отчете об ошибке . Согласно отчету об ошибке, эта цель была достигнута.

Статья в Википедии о безопасности на основе возможностей хорошо читается для всех, кто интересуется.

  • Почему Ubuntu не использует возможности для ping?
  • Как suid iwconfig на Debian wheezy?
  • почему разрешение setgid на SO вызывает сбои?
  • Linux - почему для двоичных файлов su и sudo необходимо установить root-UID?
  • Почему не установлены «нетоги» с установленным битом setuid?
  • Программа python работает от имени root для открытия URL-адресов через обычного пользователя
  • Как настроить скрипт для запуска с правами неинтерактивно?
  • Правильно использовать бит setuid
  • Почему mount.cifs не установлен по умолчанию?
  • Разрешения SUID - что правильно?
  • корневая программа с битом setuid
  • Interesting Posts

    Выберите линии на основе линий над ними

    Как создать резервную копию таблицы разделов?

    переименовать несколько файлов рекурсивно и удалить несколько символов, например? : или новая строка от имени

    Монетный двор 14 не обнаруживает мой первый жесткий диск

    Почему LUKS нужно генерировать хеш-значения?

    Как предотвратить прекращение работы Anacron после начала работы от батареи?

    Как завершить работу Linux в конкретном дате с терминала?

    Установка LUN в AIX

    Добавить строку, используя Sed на удаленной системе

    Поиск приложения – измерение производительности

    Почему я получаю DUP! ответ при использовании ping -A

    Как сделать dd сбой, если указано недопустимое значение пропуска?

    Изменение разрешений файла при использовании команды sftp в сценарии оболочки

    Изменение значения motd в операционной системе UNIX

    Как установить хот-систему с общим хостом?

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