- How to setup passwordless `sudo` on Linux?
- 8 Answers 8
- FAQ → sudo без пароля (Linux / Unix)
- How To Run “sudo” Command Without Password with NOPASSWD?
- /etc/sudoers Configuration File
- NOPASSWD Configuration For Passwordless sudo Command
- NOPASSWD For User
- NOPASSWD For Group
- NOPASSWD For Command or Application
- Как запустить команду sudo без ввода пароля в Linux?
How to setup passwordless `sudo` on Linux?
How can passwordless sudo access be setup on either RHEL (Fedora, CentOS, etc) or Ubuntu distributions? (If it’s the same across distros, that’s even better!) Setting: personal and/or lab/training equipment with no concern for unauthorized access (ie, the devices are on non-public networks, and any/all users are fully trusted, and the contents of the devices are «plain-vanilla»).
The answer from @Richipal is actullay the one working best with the least effort: it seems sudoers rules apply in reverse order.
@a1an rules are applied in the same order as listed in the sudoers file, and as they are applied they kind of override each other. Hence if I do not want a rule to change at all I would put it towards the end of file so that it is applied at the last and cannot be overridden.
8 Answers 8
EDIT thanks to medina’s comment: According to the man page, you should be able to write
ALL ALL = (ALL) NOPASSWD: ALL
to allow all users to run all commands without a password.
For reference, I’m leaving my previous answer:
If you add a line of the form
%wheel ALL = (ALL) NOPASSWD: ALL
to /etc/sudoers (using the visudo command, of course), it will let everyone in the group wheel run any commands without providing a password. So I think the best solution is to put all your users in some group and put a line like that in sudoers — obviously you should replace wheel with the actual group you use.
Alternatively, you can define a user alias,
User_Alias EVERYONE = user1, user2, user3, .
EVERYONE ALL = (ALL) NOPASSWD: ALL
although you would have to update /etc/sudoers every time you add or remove a user.
FAQ → sudo без пароля (Linux / Unix)
Если вы админ системы и вам регулярно приходится поднимать уровень привилегий в системе, то набирать пароль становится очень утомительно, для этого существует sudo nopasswd т.е. sudo без пароля, как это реализовать я и расскажу в этой маленькой заметке.
Существует 2 варианта реализации этой затеи — работающий и правильный, мы рассмотрим оба.
для примера буду использовать логин пользователя: user
Вариант номер раз — работающий
После этого, можем заходить под пользователем user и набирать:
Система больше не будет спрашивать пароль
Вариант номер два — правильный
sudo nano /etc/sudoers.d/user
Также у этого файла должны быть определенные права доступа
chmod 644 /etc/sudoers.d/user
После этого можем логиниться в систему под учетной записью user, набирать
система пароль спрашивать не будет
Именно этот вариант является более предпочтительным т.к. позволяет контролировать кому и какие права доступа установлены.
Таким образом можно выдавать права определенному пользователю на выполнение определенных действий, без предоставления административных прав на всю систему.
Например: Нам необходимо предоставить права доступа на перезапуск сервиса memcached пользователю vasia, но мы не ходим его делать админом всей системы, но для выполнения этой операции требуются административные привилегии, мы их можем выдать только на выполнение одной операции.
Создаем файл:
sudo nano /etc/sudoers.d/vasia
vasia ALL=NOPASSWD: /usr/bin/service memcahched restart
Теперь пользователь vasia имеет права sudo на перезапуск сервиса memchached, система не будет требовать от него пароль.
Пойдем еще дальше, а что если пользователю vasia необходимо предоставить права на несколько действий, без админсиких права на всю систему, например, нам необходимо разрешить перезапск определенного сервиса и обновление списка пакетов и установку обновлений системы, тогда файл с содержимым принимает вид:
vasia ALL=NOPASSWD: /usr/bin/service memcahched restart, /usr/bin/apt-get update, /usr/bin/apt-get upgrade
да именно через запятую, все права доступа и задаются и дальше того что указано в этом файле система выйти не даст.
Вот именно по этой причине второй вариант более правильный, представьте что у вас в системе десятки пользователей, а если сотни, и вам придется просматривать весь конфиг sudoers, понятно что есть поиск, но а во втором варианте, вам достаточно открыть файл с именем пользователя и вы увидите какие права положены именно ему.
Отбираем права у пользователя
После этого, пользователь vasia, потеряет административный доступ.
Для группы, права предоставляются аналогичным образом, например у нас есть группа powerusers мы хотим предоставить члеманм этой группы права на перезапуск сервисов и обновления системы без предоставления полного административного доступа, тогда создадим файл
sudo nano /etc/sudoers.d/powerusers
%powerusers ALL=NOPASSWD: /usr/bin/service memcahched restart, /usr/bin/apt-get update, /usr/bin/apt-get upgrade
Где:
%powerusers — название группы
Вот так это делается, на этом я закончу.
How To Run “sudo” Command Without Password with NOPASSWD?
Linux distributions like Ubuntu, Debian, Mint, Kali, CentOS, RHEL, SUSE, etc. provide the sudo command in order to execute and run a command with root privileges without logging as the root user. The sudo command is very popular for daily usage power users generally provided the ability to run sudo command. The sudo command configuration is located in the /etc/sudoers file. By default, the sudo command asks for the current user password to provide root privileges as a security measure. But for heavy usage provide or typing the password is not a practical method. The sudo command provides the ability to run without any password which is also called as nopasswd configuration.
/etc/sudoers Configuration File
The sudoers configuration file is used to set configuration about the sudo command. In order to make the the sudo command passwordless we should edit this file. The sudoers configuration file can be opened with a command line or GUI editor but the most secure way to prevent errors and lockdowns is using the visudo command like below.
A default configuration line is like below. Simply this line provides the ability to run all commands for the root user.
The users generally set for the sudo group in a Linux system in order to run the sudo command. This sudo group is configured with the following line in the sudoers file. Simply means the sudo group member can run all commands from all systems by providing password.
NOPASSWD Configuration For Passwordless sudo Command
The magic of the passwordless sudo command or running sudo command without typing a password comes with the NOPASSWD configuration. In the following line, we eliminate interactive password authentication for the sudo command and all users of the sudo group can run all commands without a password.
%sudo ALL=(ALL:ALL) NOPASSWD: ALL
NOPASSWD For User
We can also disable the sudo password for a specific user. We will just provide the username and change with the group name like below. In the following example, we will set the user ismail to run the sudo command without asking a password.
ismail ALL=(ALL:ALL) NOPASSWD: ALL
NOPASSWD For Group
Even we have set the sudo group for passwordless sudo command let’s make a different example by setting the sys group for passwordless sudo command.
%sys ALL=(ALL:ALL) NOPASSWD: ALL
NOPASSWD For Command or Application
Another use case for the NOPASSWD configuration is disabling the sudo password for a specific command. By default, the NOPASSWD will disable the password for all commands with the sudo. But we can set a specific command to run with sudo without a password. All other commands with sudo will require a password too. In the following example, the user ismail can run /bin/passwd commands with sudo without a password.
ismail ALL=(ALL:ALL) NOPASSWD: /bin/passwd
Multiple commands can be also specified for passwordless sudo usage like below.
ismail ALL=(ALL:ALL) NOPASSWD: /bin/passwd, /bin/rm, /bin/mkdir
Как запустить команду sudo без ввода пароля в Linux?
Если вы используете Linux на компьютере, который обычно используете только вы, скажем, на ноутбуке, то ввод пароля каждый раз, когда вы запускаете sudo, может стать очень скучной задачей. Поэтому в этой статье мы опишем, как настроить команду sudo без ввода пароля.
Этот параметр задаётся в файле /etc/sudoers, который указывает sudoers использовать плагин политики безопасности по умолчанию для команды sudo; в разделе спецификации привилегий пользователя.
Важное замечание: В файле sudeors для проверки подлинности используется параметр authenticate, который включен по умолчанию. Если он установлен, пользователи должны аутентифицировать себя с помощью пароля (или другого средства аутентификации), прежде чем будут запущенны команды с помощью sudo.
Однако это значение по умолчанию может быть переопределено с помощью тега NOPASSWD (в таком случае пароль не будет запрашиваться, когда пользователь будет вызывать команду sudo).
Синтаксис для настройки пользовательских привилегий следующий:
- user_list – список пользователей или псевдонимов пользователей.
- host_list – список хостов или псевдонимов хостов, на которых пользователи могут запускать sudo.
- ffective_user_list – список пользователей или их псевдонимов, которых будут запускаться без пароля.
- tag_list – список тегов, таких как NOPASSWD.
- command_list – список команд или псевдонимов команд, которые будут запускаться пользователем(-ями) с помощью sudo.
Чтобы позволить пользователю (user в приведенном ниже примере) запускать все команды, используя sudo без пароля, откройте файл sudoers: