- How to avoid being prompted for a password by sudo? [duplicate]
- Как отключить запрос пароля в команде sudo в Linux
- sudo без пароля
- Убираем запрос пароля sudo
- Управление правами пользователя
- Windows admin blog
- Полезные команды cmd, powershell, администрирование, фичи и решения проблем на win/winserver
- Astra Linux — отключить запрос ввода пароля
How to avoid being prompted for a password by sudo? [duplicate]
In terminal run the visudo command to edit the sudoers file:
and add the following line to the sudoers list
username ALL = NOPASSWD : ALL
Note: Replace username with your real UserName in above line.
@ElderGeek why? Other than risking someone sitting at your computer and doing some sudo evil, is there any other security implications of adding username ALL = NOPASSWD : ALL ?
Note: I had to log out and log back in before the password prompt went away using this technique (Mint 17.3) — Also this should be placed at the end of the sudoers list or it could get clobbered by other settings as the sudoers is processed line by line. Also, be careful with this on production systems (see ‘sudo evil’ thread above 🙂
I would consider jiminikiz approach here a safer more well considered approach. askubuntu.com/questions/192050/…
Well, the only thing I can think of is
echo 'password' | sudo -S command
The -S flag makes sudo read the password from the standard input. As explained in man sudo :
-S, —stdin
Write the prompt to the standard error and read the password from the standard input instead of using the terminal device. The password must be followed by a newline character.
So, to run ls with sudo privileges, you would do
Note that this will produce an error if your sudo access token is active, if you don’t need to enter your password because you’ve already done so recently. To get around that, you could use -k to reset the access token:
echo 'password' | sudo -kS ls
I don’t know of any way of getting you into an actual root shell (like su or sudo -i ) do. This might be enough for what you need though.
It should be noted, too, that this method should be considered extremely insecure, as your password is written in your history and may also be visible to other users through a process listing. I’m not sure how big a deal that is for a single-user desktop system though.
The only use I can see for this is to write a script that includes a command that requires root privileges. This is very bad, as the password is in plain text in the script.
@Marc and everybody else, don’t tell me. I would never use it and don’t have any idea why the OP would want to. It is extremely insecure and cumbersome and playing with the access token timeout settings is much better. If you want to suggest to the OP that he not do this, please leave a comment under the question. I just answered the thing, I’m not espousing it.
If you don’t want something saved to bash history, prepend it with a space. That (by default) will stop it being saved.
To anyone reading this answer: please don’t do this. You don’t automate password input — you avoid the need for passwords for specific situations. Like the other answer says.
The echo ‘password’ | sudo -kS ls solution works, but it has a few security drawbacks, most of which have already been mentioned in the comments to terdon’s answer. Thus, I would like to suggest a different approach:
If it is only one command that you frequently need to execute, e.g. apt-get upgrade , you can configure your system such that sudo someCommand does not require a password.
To do that, run visudo and enter something similar to the following:
myusername ALL=(ALL) NOPASSWD: /usr/bin/apt-get upgrade
Note that if you enter a command without an argument (e.g. without upgrade in this example), the user will be allowed to run it with any argument, so use with care.
For extra security: Use this method to give permissions to a read only shell script. This way you can run the commands you need only in the context you need.
Instead of removing the password altogether, you can increase the timeout so you only have to type it a few times per day; in a terminal, run:
At the end of the file, add following line to set a timeout of 30 minutes (replace jsmith with your username).
Defaults:jsmith timestamp_timeout=30
You can use any number you want; -1 means no timeout (prompted only the first time), and 0 means instant timeout (prompted every time you sudo ). The default timeout is 5 minutes.
Vader, from your comment on your original question, you’d like to switch to an interactive shell running with super-user permissions, right?
Sudo has a specific argument to request a shell:
-s [command] The -s (shell) option runs the shell specified by the SHELL environment variable if it is set or the shell as specified in the password database. If a command is specified, it is passed to the shell for execution via the shell's -c option. If no command is specified, an interactive shell is executed.
This avoids the already mentioned security drawbacks, and allows to «go root» by using the following command:
IF I really have to run a root shell (in most cases I don’t), then I find it very helpful to have the HOME environment variable of the shell set accordingly (to reflect running as «root»), this can be done using the «-H» flag. So the full command would be
You can find a lot more details in sudo’s man-page.
Как отключить запрос пароля в команде sudo в Linux
Не так давно мы разбирали, в чем разница между командами su и sudo . Если вы предпочитаете вторую команду — сегодняшняя статья для вас.
Как известно, команда sudo запрашивает пароль для своей успешной работы. Это логично, так как работа с правами пользователя root требует ответственности. Но, если вы считаете, что пароль вам только мешает — выход есть.
Прежде, чем перейти непосредственно к теме статьи, я хотел бы сделать предупреждение. Отключение пароля в sudo подходит далеко не всем. Новичкам лучше оставить пароль. Кроме того, я не рекомендую убирать этот пароль на серверах и важных рабочих станциях. Но, если Вы — опытный пользователь, а этот компьютер с Linux это Ваш личный компьютер, то воля Ваша…
Настройки sudo хранятся в файле /etc/sudoers, но открывать его обычным способом я не рекомендую. Вместо этого лучше использовать команду
В чём разница? Команда visudo проверяет синтаксис файла /etc/sudoers перед сохранением, что позволяет избежать ситуаций, когда вы сами себя лишили прав администратора и не можете их вернуть. В большинстве дистрибутивов visudo откроет /etc/sudoers через редактор vi, а вот в Ubuntu по умолчанию используется nano.
Найдите в открывшемся файле нужного пользователя или добавьте нового. Строка должна иметь следующий вид:
[имя_пользователя] ALL=(ALL:ALL) NOPASSWD: ALL
Подобное можно сотворить и с группой. В этом случае строка будет иметь вид:
%[имя_группы] ALL=(ALL:ALL) NOPASSWD: ALL
На самом деле, количество «ALL» в строке опционально и не всегда будет именно таким, как в примере выше. Но это отдельный разговор о синтаксисе файла /etc/sudoers.
Приведем пример. Как видно из скриншота ниже, пользователи, входящие в группу sudo могут использовать одноимённую команду (если учётка или группа, в которую входит учётка, не прописаны в /etc/sudoers, это вызовет ошибку, которую мы подробно разбирали здесь).
Откорректируем строчку, чтобы получилось так:
%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:
но и тут придётся ввести пароль. Альтернатива — отмена ввода пароля для отдельной команды:
%sudo ALL=(ALL:ALL) PASSWD: ALL, NOPASSWD: /bin/gnome-software
Обратите внимание, что надо указывать полный путь к файлу команды. Файлы разделяются запятыми. Параметр PASSWD применяется в sudo по умолчанию, но, поскольку мы прописали NOPASSWD, нам пришлось прописать и PASSWD. Если этого не сделать, пользователю или группе пользователей будет дозволено выполнять только команды, перечисленные после NOPASSWD, а все остальные станут недоступны.
sudo без пароля
Мне как системному администратору часто приходится запускать команды требующие повышенных прав. Поэтому sudo без пароля это то что доктор прописал. Способ который мы тут рассмотрим позволяет не только убрать запрос пароля sudo, но и ограничивать права пользователей на выполнение определенных действий.
Убираем запрос пароля sudo
Создаем по указанному пути файл с именем пользователя
sudo nano /etc/sudoers.d/vasya
где vasya — имя пользователя (логин входа в систему)
Записываем в файл строчку
Назначаем права доступа на файл
chmod 644 /etc/sudoers.d/vasya
Готово, теперь можете выйти из системы и снова войти, пароль sudo больше просить не будет.
Управление правами пользователя
Использование sudo позволяет грамотно разграничивать права доступа пользователя. Если нужен доступ к одному сервису, нет необходимости давать права root пользователю.
Давайте представим что нам необходимо дать пользователю petya права на выключение сервера. Для этого требуются права администратора.
Создадим файл с именем пользователя
sudo nano /etc/sudoers.d/petya
Добавим в него строку
petya ALL=NOPASSWD: /sbin/shutdown -h now
После перечисленных действий пользователь petya имеет права sudo на выключение системы без ввода пароля.
Данный метод хорош тем что вы четко указываете пользователю на что именно он будет иметь высокие привилегии. Ибо давать всем права root плохая идея. В одном файле перечисляются все необходимые права через запятую.
Давайте разрешим пользователю выключение системы, а также установку обновлений в системе на основе Debian (Ubuntu например). Файл с правами пользователя petya будет иметь следующий вид:
petya ALL=NOPASSWD: /sbin/shutdown -h now, /usr/bin/apt-get update, /usr/bin/apt-get upgrade
Таким образом можно легко манипулировать правами для пользователей, добавлять и удалять их в файле с именем пользователя. Либо вообще удалить файл если требуется полный запрет прав.
Тем же методом можно дать права группе. Например дадим права группе users
%users ALL=NOPASSWD: /sbin/shutdown -h now, /usr/bin/apt-get update, /usr/bin/apt-get upgrade
%users — вначале идет знак % далее название группы, в данном случае users
Почитать про то как использовать sudo без терминала можно тут
Всем спасибо за внимание и до новых встреч.
Windows admin blog
Полезные команды cmd, powershell, администрирование, фичи и решения проблем на win/winserver
Astra Linux — отключить запрос ввода пароля
Прежде всего стоит сказать, когда же нам приходится вводить пароль в Astra Linux (да и в любом другом дистрибутиве linux)?
1. При входе в систему (стартовое окно с вводом логина и пароля)
2. При выполнении действий в системе, требующих повышения прав (как в графической оболочке, так и в командной строке при вводе команд, начинающихся с sudo)
В данной статье мы рассмотрим оба сценария, т.к. это две разные настройки системы.
Пароль на вход в систему
Пуск — Панель управления — Система — Вход в систему
Далее, если пользователь root защищен паролем, то будет запрошен пароль. О том, как снять данный запрос пароля, мы как раз поговорим во второй часте статьи
Здесь есть два варианта на выбор:
- Разрешить автоматический вход в систему (левая часть окна)
- Разрешить вход без пароля (правая часть окна)
В этих режимах есть некоторая разница.
«Автоматический вход в систему» позволит обойти запрос ввода пароля после включения компьютера и автоматически войдет в сеанс указанного пользователя, но потребует ввести пароль при разблокировке рабочей станции (например, если компьютер заблокируется по таймауту простоя).
«Разрешить вход без пароля» позволит вообще никогда не вводить пароль на вход, даже после блокировки рабочей станции. Достаточно будет просто оставить поле пароля пустым и нажать Enter.
Теперь, когда мы рассмотрели разницу, отмечаем нужный чекбокс, выбираем требуемого пользователя — ОК.
Запрос пароля sudo
Здесь все просто. Снимаем запрос пароля такой командой:
sudo astra-sudo-control disable
sudo astra-sudo-control enable