Как я могу позволить пользователям запускать скрипт с правами root? - PullRequest
7 голосов
/ 29 декабря 2008

Учитывая опасность сценариев оболочки SUID , существует ли более безопасный способ предоставления без пароля доступа к сценариям (bash, PHP) с правами root в Linux?

(Ubuntu 8.10)

Ответы [ 9 ]

15 голосов
/ 29 декабря 2008

alt text

13 голосов
/ 29 декабря 2008

Вы можете рассмотреть sudo .

Хотя и не «без пароля», он не требует, чтобы пользователю был предоставлен пароль root. Он также может предоставить контрольный журнал использования скрипта.

edit: согласно комментарию от Chris, есть возможность вообще не запрашивать пароль для определенных команд, см. здесь для подробностей. Его также можно настроить так, чтобы он не запрашивал слишком много пароля, т. Е. Одна запись пароля может быть полезна для нескольких команд в течение периода использования.

Кстати, sudo встроен в Ubuntu и хорошо интегрирован с Gnome. Когда Ubuntu запрашивает пароль для выполнения привилегированных операций, это sudo под капотом.

6 голосов
/ 30 декабря 2008

Обязательно ознакомьтесь с разделом « ПРЕДОТВРАЩЕНИЕ ОБОРОТОВ ОБОЛОЧКИ » на странице руководства sudoers, если вы идете по маршруту sudo.

5 голосов
/ 29 декабря 2008

Я бы порекомендовал sudo . Обязательно затяните файл sudoers соответствующим образом; и да, вы можете разрешить выполнение некоторых команд без запроса пароля.

4 голосов
/ 29 декабря 2008

Настройка sudo, позволяющая обычным пользователям запускать сценарии оболочки с повышенными привилегиями, с точки зрения безопасности не лучше, чем создание сценария suid root. Все подводные камни все еще существуют. Вместо этого вы должны написать правильную программу, которая делает обширные проверки безопасности. Некоторые моменты для рассмотрения:

Не пиши на С, ты застрелишься обеими ногами. Проверьте все входы. Отбросьте привилегии как можно скорее. Держите это коротким.
2 голосов
/ 29 декабря 2008

Поскольку sudo уже упоминалось, вы можете рассмотреть различные среды для песочницы в зависимости от ваших потребностей & mdash; например, тюрьма или аналогичная.

1 голос
/ 30 декабря 2008

Для действительно тяжелого решения рассмотрим систему MAC (Mandatory Access Control), такую ​​как SELinux, AppArmor, TrustedBSD и т. Д.

1 голос
/ 30 декабря 2008

Для повышения безопасности подумайте, возможно ли выполнить операцию как специальный пользователь или группа, которая имеет именно те права доступа, которые необходимы для нее. Затем вы можете сделать скрипт setuid / setgid для этого пользователя или группы.

0 голосов
/ 23 октября 2013

Если вариант использования - это машина, работающая под VirtualBox, и безопасность не является проблемой, вам просто нужен легкий барьер, чтобы не позволить себе выстрелить себе в ногу, что тогда? (Тогда аргументы безопасности на самом деле не имеют смысла, так как не имеет значения, если машина будет скомпрометирована посторонним, который все равно не может ее увидеть из-за способа, которым VirtualBox изолирует ее через NAT.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...