Молодогвардейцев 454015 Россия, Челябинская область, город Челябинск 89085842764
MindHalls logo

Использование sudo без ввода пароля в Ubuntu

На днях задумался о замечательной программе sudo. Согласитесь, трудно представить свою жизнь без нее? Когда мне первый раз дали потрогать Linux Dedian в университетской лаборатории, я заходил с помощью команды su под администратора, вводил пароль и вытворял все, что душе угодно. Конечно же, в 85% случаев я не выходил из root-пользователя и в следующий раз удивлялся обилию заблокированных файлов в домашней директории. Но еще больше удивлялись студенты, которые работали за этой машиной после меня.

Тогда я думал: «Глупый линукс, кому нужны все эти права! Только лишние телодвижения». Сейчас мой взгляд на эту ОС изменился. Я поддался очарованию движения Open Source и возможности настроить в системе вообще все!

Но хватит вступлений. Вопрос, о котором я задумался, звучит так: «Можно ли использовать sudo без ввода пароля?». Оказалось, что да, но зачем?

Зачем использовать sudo без ввода пароля?

Объясню, зачем это нужно и почему удобно лично для меня. У меня есть локальный сервер Apach2, на котором я частенько провожу всякие эксперименты, тренирую php, учу Zend Framework и многое другое. В общем, издеваюсь над ним. Как порядочный пользователь, я включаю его, когда он мне нужен и выключаю, когда наиграюсь. Это делается с помощью двух команд.

sudo /opt/lampp/lampp start
sudo /opt/lampp/lampp stop

Ламп-сервер лежит в директории /opt, которая защищена от вторжения рядовых пользователей, поэтому без применения sudo не обойтись. Проблема в том, что мне надоедает каждый раз вводить пароль для такой элементарной операции. Кроме того,  я не буду против, если кто-нибудь подойдет и включит apach без моего разрешения, пожалуйста. Можете даже выключить. Поэтому ставить пароль на эти команды вовсе необязательно. Решение нашлось мгновенно и в нем нет ничего сложного, главное сделать все внимательно и сосредоточено. В прочем, все, что касается настройки Linux нужно делать медленно и вдумчиво, утверждаю основываясь на собственном горьком опыте. Поэтому ловим максимальную концентрацию и приступаем к настройке.

Настройка

Система: Linux Ubuntu 16.04, ALT Linux.

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

sudo cp /etc/sudoers /etc/sudoers_copy

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

Теперь про сам файл. Открываем его.

sudo nano /etc/sudoers

Листаем в самый низ и дописываем правило.

kirill ALL = NOPASSWD: /opt/lampp/lampp start

Сначала идет имя пользователя, для которого устанавливается правило. Затем домен, в нашем случае ALL — все домены. После равно, с помощью незамысловатого слова NOPASSWD просим не спрашивать пароль для команды, которая стоит после двоеточия.

Внимание, важно! Чтобы файл с настройками работал после нашего внедрения, в конец, сразу после правила нужно добавить один символ переноса строки(одну пустую строку). Иначе при попытке использовать sudo будет выдаваться предупреждение о том, что невозможно корректно считать файл с конфигурацией.

Аналогичным образом можно добавить сколько угодно команд. Не забывайте оставлять после каждой пустую строку.

Заключение

Конфигурировать программы в Linux это очень весело, теперь я не трачу лишних три секунды на ввод пароля, чудесный прирост производительности! Кроме апача, очень удобно запускать sublime text под рутом без вводя пароля. Однако, это уже опаснее, потому что любой может переписать защищенные файлы с помощью рутованого редактора. Но с другой стороны, я единственный на всем белом свете пользуюсь своим ноутбуком, кому я нужен?

Эту настройку я проделывал на своей Ubuntu и на «соседском» ALT`е, указывать другие системы не стал, не могу утверждать, что там получится. На этом все, спасибо за внимание!