Sudo: различия между версиями

Материал из ALT Linux Wiki
Строка 35: Строка 35:
{{Note|Для разрешения запуска произвольной программы пользователям группы {{term|wheel}} можно выполнить под правами суперпользователя: <source lang="text">control sudowheel enabled</source> Что является с точки зрения безопасности '''безрассудно''' ;-)}}
{{Note|Для разрешения запуска произвольной программы пользователям группы {{term|wheel}} можно выполнить под правами суперпользователя: <source lang="text">control sudowheel enabled</source> Что является с точки зрения безопасности '''безрассудно''' ;-)}}


```Раскоментировать``` (убрать '#' в начале строки) в /etc/sudoers строчку:
'''Раскоментировать''' (убрать '#' в начале строки) в /etc/sudoers строчку:


<pre>WHEEL_USERS ALL=(ALL) ALL</pre>  
<pre>WHEEL_USERS ALL=(ALL) ALL</pre>  


с точке зрения безопасности, правильнее давать права на выполнение '''sudo''' не всей группе '''wheel''', а конкретному пользователю например '''petya''', входящую в группу, например:
C точке зрения безопасности, '''правильнее''' давать права на выполнение '''sudo''' не всей группе '''wheel''', а конкретному пользователю например '''petya''', входящую в группу, например:


<pre>petya ALL=(ALL) ALL</pre>  
<pre>petya ALL=(ALL) ALL</pre>  

Версия от 06:15, 6 мая 2022

Введение

Команда sudo используется[1] для выполнения пользователем какой-либо команды с правами суперпользователя (root). То есть получение прав root для выполнения какой-либо команды, на время ёё выполнение. Перед выполнением команды, sudo запрашивает пароль пользователя (а не пароль root, как команда su -). После выполнение sudo существует временной отрезок, в течении которого повторное выполнение команды sudo не требует пароль (что удобно для взлома вашего компьютера со стороны rootkits и хакерских атак). С другой стороны, команда sudo удобна для распределения прав между несколькими администраторами компьютера (например, кому можно обновлять и устанавливать программы, а кому настраивать работу аппаратуры компьютера), не предоставляя прав root на все другие действия и не выдавая пользователю пароля 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, но не означает, что он через sudo может выполнить какую-то команду с правами root

Для разрешения получение прав на выполнение конкретных команд с правами root надо отредактировать настройки правил sudoerc:

su -
EDITOR=mcedit visudo

Грубая настройка sudo

Примечание: Для разрешения запуска произвольной программы пользователям группы wheel можно выполнить под правами суперпользователя:
control sudowheel enabled
Что является с точки зрения безопасности безрассудно ;-)


Раскоментировать (убрать '#' в начале строки) в /etc/sudoers строчку:

WHEEL_USERS ALL=(ALL) ALL

C точке зрения безопасности, правильнее давать права на выполнение 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.

Примечания

  1. Существует рекомендация известного эксперта в области ИТ-безопасности Александра Песляка (Solar Designer) не использовать sudo
  2. Любителям mcedit: всё-таки базовое знание vi весьма полезно, но если очень хочется — переопределите переменную окружения EDITOR

Ссылки