20 января 2020

Как выполнять команды sudo без ввода пароля в Linux?

sudo (англ. substitute user and do, дословно «подменить пользователя и выполнить») — программа для системного администрирования UNIX-систем (к которым относится и Linux), позволяющая делегировать те или иные привилегированные ресурсы пользователям с ведением протокола работы. Википедия.
 
Значение su - substitute user (подменить пользователя), может быть не совсем понятной обычному пользователю, поэтому su можно перевести с английского ешё и как s - super, а u - user или su - super user (суперпользователь, администратор), ну а do - делать, выполнять, таким образом дословно sudo - администратор выполняет.

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

Многие новички в Linux спрашивают: "А зачем мне постоянно вводить пароль в терминале после выполнения команды sudo, если я пользуюсь домашним компьютером один?".
Вопрос резонный. В данном случае, конечно нет особой необходимости вводить постоянно пароль после выполнения команды sudo.

Так как же выполнять команды sudo без ввода пароля в Linux?

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

1. Редактирование файла sudoers в консольном редакторе vi.

Редактирование файлов в консольном редакторе vi, система Linux не имеет значения, т.к. vi присутствует в любой системе.
Откройте терминал, скопируйте/вставьте и выполните (нажмите Enter) следующую команду:

sudo visudo

После выполнения данной команды в терминале (Konsole KDE) откроется редактор с файлом sudoers, гле клавишей с стрелкой вниз опуститесь в самый конец файла, скопируйте и вставьте следующую строку:

администратор ALL=(ALL) NOPASSWD: ALL


Примечание. Только вместо администратор необходимо ввести имя администратора системы, которое вы вводили во время установки системы, он же пользователь Домашней папки.
Если вы забыли имя администратора, то команда whoami (кто я) в терминале поможет его вспомнить.

whoami

 
В моём случае - это vladimir. У вас, конечно же, терминал должен вывести ваше имя администратора.

После вставки строки необходимо сохранить файл клавишами Ctrl+x и подтвердить клавишей y (латинская).


2.  Редактирование файла sudoers в графическом текстовом редакторе вашей системы.

Не каждому пользователю, а тем более начинающему, по нраву использование  консольных редакторов. Поэтому в Linux можно редактировать файлы и в графическом редакторе. 
В каждой системе Linux по умолчанию установлен свой текстовый редактор, согласно рабочему окружению:

gedit для окружения GNOME

kate или kwrite - для KDE Plasma

mousepad - для Xfce

xed - для Cinnamon

pluma - для MATE

Примечание. Определить ваше окружение рабочего стола, если вы забыли, можно командой в терминале:

echo $DESKTOP_SESSION

 Например:



После того, как вы определились с графическим текстовым редактором в вашем дистрибутиве, выполните следующую команду в терминале на редактирование файла sudoers:

sudo gedit /etc/sudoers

Я работаю в окружении GNOME, поэтому в команде - gedit, в вы поменяйте на свой редактор.

Когда после выполнения команды откроется редактор, в самый конец файла вставьте следующую строку:

администратор ALL=(ALL) NOPASSWD: ALL


Примечание. Опять же, вместо администратор в команде, вставьте своё имя администратора системы.

Сохраните отредактированный файл Ctrl+s и закройте редактор.

3. Терминальный вариант

Как я писал выше, новички в Linux не очень жалуют терминал, считая его чем-то запредельным для простого пользователя. А зря. Это так просто.
Всё то что описывалось в первых двух пунктах, так сказать в картинках, в терминале можно выполнить одной командой:

sudo sh -c "echo \"$USER ALL=(ALL) NOPASSWD: ALL\" >> /etc/sudoers"

Заключение

Вот и всё. Я показал в статье возможные варианты отмены пароля. Какой вариант предпочтительный для вас, выберите сами.

Теперь вам не нужно в терминале вводить пароль после команды sudo.

Удачи.

P.S. Если у вас появились вопросы по данной статье, обсудить их можно на нашем форуме:
 http://compizomania.54672.x6.nabble.com/sudo-Linux-td9390.html