Как избежать запроса пароля sudo? [Дубликат]

Для 12.04

По умолчанию он выключен. Чтобы включить его, откройте терминал и запустите

gksudo gedit /usr/share/gnome/autostart/libcanberra-login-sound.desktop

Затем измените значение для X-GNOME-Autostart-enabled на «true», то есть X-GNOME-Autostart-enabled=true

Для 11.10

Введите на терминал gksudo gedit /usr/share/gnome/autostart/libcanberra-login-sound.desktop и измените значение NoDisplay с true на false:

Теперь перейдите в свои приложения для запуска, и вы увидите и сможете отключить необходимый параметр:

enter image description here

1
задан 24 August 2017 в 00:27

5 ответов

В терминале выполните команду visudo для редактирования файла sudoers:

sudo visudo

и добавьте следующую строку в sudoers

username ALL = NOPASSWD : ALL

Примечание: замените имя пользователя на ваше реальное имя пользователя в указанной строке.

65
ответ дан 24 May 2018 в 07:29
  • 1
    Казалось бы, это огромный риск для безопасности. Я, конечно, не мог рекомендовать этот курс действий. – Elder Geek 27 March 2015 в 19:02
  • 2
    @ElderGeek почему? Помимо риска того, что кто-то сидит на вашем компьютере и делает какое-то злое зло, есть ли какие-либо другие последствия для безопасности добавления username ALL = NOPASSWD : ALL? – brillout 28 July 2015 в 18:57
  • 3
    Примечание. Мне пришлось выйти из системы и войти в систему до того, как подсказка пароля исчезла с использованием этой методики (Mint 17.3). Также это должно быть помещено в конец списка sudoers или оно может быть сбито другими настройками, поскольку sudoers обрабатывается по строкам. Кроме того, будьте осторожны с этим в производственных системах (см. «Sudo evil» thread выше :) – RyanNerd 17 March 2016 в 02:50
  • 4
    Забыв поместить эту строку LAST в sudoers, я сжигает меня каждый раз. ПУТЬ ЭТО В КОНЕЦ. – moodboom 26 September 2016 в 04:56
  • 5
    Я бы рассмотрел подход джиминикиса здесь более безопасный, более хорошо продуманный подход. askubuntu.com/questions/192050/&hellip – Elder Geek 2 October 2016 в 15:25

Решение echo 'password' | sudo -kS ls работает, но оно имеет несколько недостатков безопасности, большинство из которых уже упоминалось в комментариях к ответу terdon. Таким образом, я хотел бы предложить другой подход:

Если это только одна команда, которую вам часто нужно выполнять, например. apt-get upgrade, вы можете настроить свою систему таким образом, чтобы sudo someCommand не требовал пароля.

Для этого запустите visudo и введите что-то похожее на следующее:

myusername ALL=(ALL) NOPASSWD: /usr/bin/apt-get upgrade

Обратите внимание, что если вы введете команду not аргумент (например, без upgrade в этом примере), пользователю будет разрешено запускать его с любым аргументом, поэтому используйте с осторожностью.

20
ответ дан 24 May 2018 в 07:29
  • 1
    Для дополнительной безопасности: используйте этот метод для предоставления разрешений только сценарию оболочки только для чтения. Таким образом, вы можете запускать команды, которые вам нужны, только в том контексте, в котором вы нуждаетесь. – Adrian Lopez 12 February 2016 в 08:49
  • 2
    Это, кажется, лучший ответ здесь! спасибо – Lockszmith 1 August 2017 в 04:22

Вы также можете сделать это:

sudo -S <<< "password" command
8
ответ дан 24 May 2018 в 07:29

Вместо того, чтобы полностью удалить пароль, вы можете увеличить тайм-аут, поэтому вам нужно только вводить его несколько раз в день; в терминале выполните:

sudo visudo

В конце файла добавьте следующую строку, чтобы установить тайм-аут в 30 минут (замените jsmith на ваше имя пользователя).

Defaults:jsmith timestamp_timeout=30

Вы можете использовать любое число, которое вы хотите; -1 означает отсутствие таймаута (запрашивается только в первый раз), а 0 означает мгновенный тайм-аут (запрашивается каждый раз, когда вы sudo). Таймаут по умолчанию - 5 минут.

5
ответ дан 24 May 2018 в 07:29

Vader, из вашего комментария к исходному вопросу, вы хотели бы переключиться на интерактивную оболочку с полномочиями суперпользователя, правильно?

У Sudo есть специальный аргумент для запроса оболочки: [ ! d1]

-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.

Это позволяет избежать уже упомянутых недостатков безопасности и позволяет «переходить в root» с помощью следующей команды:

sudo -s

ЕСЛИ мне действительно нужно запустить корневую оболочку ( в большинстве случаев я этого не делаю), то мне очень полезно иметь переменную окружения HOME из установленной оболочки (чтобы отразить запуск как «root»), это можно сделать, используя флаг «-H». Таким образом, полная команда будет

sudo -s -H

. Вы можете найти намного больше деталей в man-странице sudo.

1
ответ дан 24 May 2018 в 07:29

Другие вопросы по тегам:

Похожие вопросы: