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

Материал из ALT Linux Wiki
Строка 19: Строка 19:


=== Настройка contol для работы sudo ===
=== Настройка contol для работы sudo ===
В ALT Linux {{pkg|sudo}} используется фреймворк [[control]]  который задаёт права на выполнения команды '''sudo'''
В ALT Linux {{pkg|sudo}} используется фреймворк [[control]]  который задаёт права на выполнения команды '''sudo'''.
С помощью его можно отнять или дать права на использование команды '''sudo'''.
 
С его помощью можно дать или отнять права на использование команды '''sudo'''.


Возможные значения '''control sudo''' можно посмотреть командой '''control sudo help'''
Возможные значения '''control sudo''' можно посмотреть командой '''control sudo help'''

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

Введение

Штатным способом временного получения прав root в большинстве дистрибутивах ALT Linux, является команда su -.

Команда sudo может использоваться [1] для выполнения пользователем какой-либо команды требующей права суперпользователя (root), но требует предварительной настройки.

Исключением является дистрибутив Simply, где она уже настроена для первого пользователя.

То есть получение прав root для выполнения какой-либо команды, на время ёё выполнение.

Перед выполнением команды, sudo запрашивает пароль пользователя, а не пароль root, как у команды su -.

После выполнение sudo существует временной отрезок, в течении которого повторное выполнение команды sudo не требует пароль (что удобно для взлома вашего компьютера со стороны rootkits и хакерских атак).

С другой стороны, команда sudo удобна для распределения прав между несколькими администраторами компьютера (например, кому можно обновлять и устанавливать программы, а кому настраивать работу аппаратуры компьютера), не предоставляя прав root на все другие действия и не выдавая пользователю пароля root

В большинстве дистрибутивах ALT Linux запрещено выполнять команду sudo пользователю root.

Настройка contol для работы sudo

В 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 надо отредактировать настройки правил /etc/sudoerc [2] при помощи специальной команды visudo (которая не портит права на файлы)  :

su -
EDITOR=mcedit visudo

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

Раскоментировать (убрать '#' в начале строки) в /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),

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


Тонкая настройка sudo

Для того, чтобы настроить работу sudo, необходимо с применением административных привилегий отредактировать файл /etc/sudoers при помощи специальной команды visudo (подробности смотри выше) и внести туда записи о том, каким пользователям какие команды можно выполнять.


Пример:

 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 , но базовst знание vi весьма полезны, для их получения установите и запустите команду vimtutor

Ссылки