Как отключить запрос пароля в команде sudo в Linux

Keep Calm And SudoНе так давно мы разбирали, в чем разница между командами su и sudo. Если вы предпочитаете вторую команду — сегодняшняя статья для вас.

Как известно, команда sudo запрашивает пароль для своей успешной работы. Это логично, так как работа с правами пользователя root требует ответственности. Но, если вы считаете, что пароль вам только мешает — выход есть.

Прежде, чем перейти непосредственно к теме статьи, я хотел бы сделать предупреждение. Отключение пароля в sudo подходит далеко не всем. Новичкам лучше оставить пароль. Кроме того, я не рекомендую убирать этот пароль на серверах и важных рабочих станциях. Но, если Вы — опытный пользователь, а этот компьютер с Linux это Ваш личный компьютер, то воля Ваша…

Настройки sudo хранятся в файле /etc/sudoers, но открывать его обычным способом я не рекомендую. Вместо этого лучше использовать команду

sudo visudo

В чём разница? Команда visudo проверяет синтаксис файла /etc/sudoers перед сохранением, что позволяет избежать ситуаций, когда вы сами себя лишили прав администратора и не можете их вернуть. В большинстве дистрибутивов visudo откроет /etc/sudoers через редактор vi, а вот в Ubuntu по умолчанию используется nano.

Как отключить запрос пароля в команде sudo в Linux
Неправильно отредактированный /etc/sudoers приводит вот к такому…

Найдите в открывшемся файле нужного пользователя или добавьте нового. Строка должна иметь следующий вид:

[имя_пользователя] ALL=(ALL:ALL) NOPASSWD: ALL

Подобное можно сотворить и с группой. В этом случае строка будет иметь вид:

%[имя_группы] ALL=(ALL:ALL) NOPASSWD: ALL

На самом деле, количество «ALL» в строке опционально и не всегда будет именно таким, как в примере выше. Но это отдельный разговор о синтаксисе файла /etc/sudoers.

Приведем пример. Как видно из скриншота ниже, пользователи, входящие в группу sudo могут использовать одноимённую команду (если учётка или группа, в которую входит учётка, не прописаны в /etc/sudoers, это вызовет ошибку, которую мы подробно разбирали здесь).

Как отключить запрос пароля в команде sudo в Linux

Откорректируем строчку, чтобы получилось так:

%sudo ALL=(ALL:ALL) NOPASSWD: ALL

Теперь у всех, кто входит в эту группу, не будет спрашиваться пароль при выполнении команд через sudo.

Но это ещё не всё. Возможно, что нам не нужно убирать пароль для выполнения всех команд через sudo. Бывает удобно облегчить выполнение некоторых рутинных действий, но оставить пароль для всех остальных. К счастью, файл /etc/sudoers это дозволяет.

В общем виде для пользователей строка будет выглядеть так:

[имя_пользователя] ALL=(ALL:ALL) PASSWD: ALL, NOPASSWD: [команда_1], [команда_2] … [команда_n]

Для группы:

%[имя_группы] ALL=(ALL:ALL) PASSWD: ALL, NOPASSWD: [команда_1], [команда_2] … [команда_n]

Продолжим наш пример с группой sudo. Предположим, что Вы — любитель устанавливать и удалять приложения через Центр приложений. Но это требует прав администратора.

Как отключить запрос пароля в команде sudo в Linux

Конечно, можно запустить Центр приложений из терминала через sudo:

sudo gnome-software

но и тут придётся ввести пароль. Альтернатива — отмена ввода пароля для отдельной команды:

%sudo ALL=(ALL:ALL) PASSWD: ALL, NOPASSWD: /bin/gnome-software

Обратите внимание, что надо указывать полный путь к файлу команды. Файлы разделяются запятыми. Параметр PASSWD применяется в sudo по умолчанию, но, поскольку мы прописали NOPASSWD, нам пришлось прописать и PASSWD. Если этого не сделать, пользователю или группе пользователей будет дозволено выполнять только команды, перечисленные после NOPASSWD, а все остальные станут недоступны.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *