Отключение запроса пароля linux

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

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

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

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

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

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

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

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

[имя_пользователя] 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 ALL=(ALL:ALL) PASSWD: ALL, NOPASSWD: /bin/gnome-software

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

Читайте также:  How to make linux installer

Источник

Команда sudo без пароля Linux

Утилита sudo — позволяет выполнять команды с правами суперпользователя обычному пользователю. Для защиты программа каждый раз спрашивает пароль. Это вполне оправданно, так как с помощью пароля система может проверить, что это действительно пользователь, а не программа, которая просто хочет что-то нашкодить в системе, а также убедится что это именно тот пользователь за которого он себя выдает.

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

Команда sudo без пароля в Linux

Чтобы отключить пароль sudo, надо добавить к строчке настройки пользователя или группы директиву NOPASSWD. Синтаксис такой:

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

Для того чтобы отключить пароль sudo для определенного пользователя нужно открыть файл конфигурации sudo и отключить запрос пароля следующей строчкой, например для пользователя losst:

losst ALL=(ALL) NOPASSWD: ALL

Сохраните изменения и закройте файл, на всякий случай напомню что в vi для перехода в режим вставки используется клавиша i, для сохранения команда :w и команда :q для выхода. Теперь sudo не будет запрашивать пароль у выбранного пользователя при выполнении любых команд.

Для того чтобы разрешить пользователю выполнять только некоторые команды без пароля (например apt и reboot) добавьте следующую строчку:

losst ALL=(ALL) NOPASSWD: /usr/bin/apt, /sbin/reboot

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

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

Теперь у пользователей группы имя_группы утилита sudo не будет спрашивать пароль, а у всех остальных будет. Чтобы более детально ознакомится с возможностями sudo смотрите статью про настройку sudo в Linux.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

sudo без пароля

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 без терминала можно тут

Всем спасибо за внимание и до новых встреч.

Источник

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.

Читайте также:  Mysql резервное копирование линукс

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.

Источник

Оцените статью
Adblock
detector