Sudo: различия между версиями
Нет описания правки |
|||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE:sudo}} | {{DISPLAYTITLE:sudo}} | ||
=== Введение === | === Введение === | ||
Команда {{cmd|sudo}} используется<ref>Существует рекомендация известного эксперта в области ИТ-безопасности Александра Песляка (Solar Designer) [http://www.opennet.ru/openforum/vsluhforumID3/73378.html#18 ''не'' использовать sudo]</ref> для выполнения обычным<sup>*</sup> пользователем какой-либо другой команды с правами суперпользователя (root). | Команда {{cmd|sudo}} используется<ref> Существует рекомендация известного эксперта в области ИТ-безопасности Александра Песляка (Solar Designer) [http://www.opennet.ru/openforum/vsluhforumID3/73378.html#18 ''не'' использовать sudo]</ref> для выполнения обычным<sup>*</sup> пользователем какой-либо другой команды с правами суперпользователя ('''root'''). | ||
=== Специфика ALT Linux === | === Специфика ALT Linux === | ||
В ALT Linux {{pkg|sudo}} используется фреймворк [[control]] | В ALT Linux {{pkg|sudo}} используется фреймворк [[control]] который задаёт права на выполнения команды '''sudo''' | ||
С помощью его можно отнять или дать права на использование команды '''sudo'''. | |||
Возможные значения '''control sudo''' можно посмотреть командой '''control sudo help''' | |||
<source lang=bash> | |||
su - | |||
control sudo help | |||
</source> | |||
На текущий момент существуют следующие '''политики''' у команды '''sudo''' | |||
<source lang=bash> | |||
public: - любой пользователь может получить доступ к команде /usr/bin/sudo | |||
wheelonly: только пользователи из группы wheel имеют право получить доступ к команде /usr/bin/sudo | |||
restricted: Только root имеет право выполнять команду /usr/bin/sudo | |||
</source> | |||
Штатное его состояние политики - '''control sudo wheelonly''' , однако это означает, что пользователь из группы ```wheel''' имеет только право запустить команду sudo, но не означает, что он через судо может выполнить какую-то команду с правами '''root''' | |||
Для разрешения получение прав на выполнение конкретных команд с правами '''root''' надо отредактировать настройки правил sudoerc: | |||
<source lang=bash> | |||
su - | |||
EDITOR=mcedit visudo | |||
</source> | |||
=== Грубая настройка sudo === | |||
{{Note|Для разрешения запуска произвольной программы пользователям группы {{term|wheel}} можно выполнить под правами суперпользователя: <source lang="text">control sudowheel enabled</source> Что является с точки зрения безопасности '''безрассудно''' ;-)}} | |||
Раскоментировать (убрать '#' в начале строки) в /etc/sudoers строчку: | |||
<pre>WHEEL_USERS ALL=(ALL) ALL</pre> | <pre>WHEEL_USERS ALL=(ALL) ALL</pre> | ||
с точке зрения безопасности, правильнее давать права на выполнение sudo не всей группе '''wheel''', а конкретному пользователю например '''petya''', входящую в группу, например: | с точке зрения безопасности, правильнее давать права на выполнение '''sudo''' не всей группе '''wheel''', а конкретному пользователю например '''petya''', входящую в группу, например: | ||
<pre>petya ALL=(ALL) ALL</pre> | <pre>petya ALL=(ALL) ALL</pre> | ||
Строка 17: | Строка 44: | ||
<pre>petya ALL=(ALL) /usr/bin/apt-get,/usr/bin/rpm,/sbin/fdisk</pre> | <pre>petya ALL=(ALL) /usr/bin/apt-get,/usr/bin/rpm,/sbin/fdisk</pre> | ||
Это особенно важно, потому, что после выполнения команды sudo с запросом пароля, есть определённый временный отрезок, в течении которого sudo | Это особенно важно, потому, что после выполнения команды '''sudo''' с запросом пароля, есть определённый временный отрезок, в течении которого ''sudo'' выполняет следующие команды, не запрашивая повторно пароль пользователя. | ||
Также может понадобиться внесение требуемых пользователей в группу <tt>wheel</tt> (созданный при установке системы аккаунт добавляется в неё автоматически, иначе см. {{path|/etc/group}}), | |||
Строка 32: | Строка 53: | ||
Пример: | Пример: | ||
<pre> | |||
user1 ALL = (ALL) ALL | user1 ALL = (ALL) ALL | ||
user1 ALL = NOPASSWD: /usr/bin/apt-get update | user1 ALL = NOPASSWD: /usr/bin/apt-get update | ||
</pre> | |||
Позволяет пользователю '''user1''' запускать все приложения через {{cmd|sudo}} с правами суперпользователя ('''root''') с запросом пароля, а при выполнении команды {{cmd|sudo apt-get update}} пароль не будет спрашиваться. | Позволяет пользователю '''user1''' запускать все приложения через {{cmd|sudo}} с правами суперпользователя ('''root''') с запросом пароля, а при выполнении команды {{cmd|sudo apt-get update}} пароль не будет спрашиваться. |
Версия от 05:56, 6 мая 2022
Введение
Команда sudo используется[1] для выполнения обычным* пользователем какой-либо другой команды с правами суперпользователя (root).
Специфика ALT Linux
В ALT Linux sudo используется фреймворк control который задаёт права на выполнения команды sudo С помощью его можно отнять или дать права на использование команды sudo.
Возможные значения control sudo можно посмотреть командой control sudo help
su -
control sudo help
На текущий момент существуют следующие политики у команды sudo
public: - любой пользователь может получить доступ к команде /usr/bin/sudo
wheelonly: только пользователи из группы wheel имеют право получить доступ к команде /usr/bin/sudo
restricted: Только root имеет право выполнять команду /usr/bin/sudo
Штатное его состояние политики - control sudo wheelonly , однако это означает, что пользователь из группы ```wheel имеет только право запустить команду sudo, но не означает, что он через судо может выполнить какую-то команду с правами root
Для разрешения получение прав на выполнение конкретных команд с правами root надо отредактировать настройки правил sudoerc:
su -
EDITOR=mcedit visudo
Грубая настройка sudo
control sudowheel enabled
Раскоментировать (убрать '#' в начале строки) в /etc/sudoers строчку:
WHEEL_USERS ALL=(ALL) ALL
с точке зрения безопасности, правильнее давать права на выполнение sudo не всей группе wheel, а конкретному пользователю например petya, входящую в группу, например:
petya ALL=(ALL) ALL
и не на все команды, а на те, которые ему необходимы для быстрого получения прав root
petya ALL=(ALL) /usr/bin/apt-get,/usr/bin/rpm,/sbin/fdisk
Это особенно важно, потому, что после выполнения команды sudo с запросом пароля, есть определённый временный отрезок, в течении которого sudo выполняет следующие команды, не запрашивая повторно пароль пользователя.
Также может понадобиться внесение требуемых пользователей в группу wheel (созданный при установке системы аккаунт добавляется в неё автоматически, иначе см. /etc/group),
Тонкая настройка sudo
Для того, чтобы настроить работу sudo, необходимо с применением административных привилегий отредактировать файл /etc/sudoers при помощи специальной команды visudo[2] и внести туда записи о том, каким пользователям какие команды можно выполнять.
Пример:
user1 ALL = (ALL) ALL user1 ALL = NOPASSWD: /usr/bin/apt-get update
Позволяет пользователю user1 запускать все приложения через sudo с правами суперпользователя (root) с запросом пароля, а при выполнении команды sudo apt-get update пароль не будет спрашиваться.
Полная документация по формату конфигурационного файла находится в man-странице sudoers, начинать читать может быть проще с секции EXAMPLES.
Примечания
- ↑ Существует рекомендация известного эксперта в области ИТ-безопасности Александра Песляка (Solar Designer) не использовать sudo
- ↑ Любителям mcedit: всё-таки базовое знание vi весьма полезно, но если очень хочется — переопределите переменную окружения EDITOR