Можно ли таким образом автоматизировать обновление / обновление с помощью sudo?

Пожалуйста, обратите внимание на этот код:

alias fast='echo "password" | sudo -S apt-get update && sudo -S apt-get upgrade'

У меня еще не было проблем с его использованием, но возможно ли, что если первый шаг, apt-get update займет очень много времени, пароль будет потерян время выполнения команд apt-get upgrade?

1
задан 16 June 2012 в 16:26

3 ответа

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

Вы можете настроить sudo так, чтобы он не запрашивал пароль для команды apt-get. Вы устанавливаете это с помощью команды visudo. Поскольку у меня сейчас нет доступа к моим Linux-блокам, я не могу рассказать вам, как это сделать, но вы можете попробовать прочитать справочные страницы sudoers, visudo и все, на что ссылаются эти страницы.

ПРЕДУПРЕЖДЕНИЕ: Это может потенциально позволить любому запустить любую команду apt-get. Вам нужно будет оценить, перевешивает ли удобство этого метода дополнительную угрозу безопасности.

0
ответ дан 16 June 2012 в 16:26

Я почти уверен, что время для sudo составляет 15 минут.

Вы можете изменить это

sudo visudo

Добавить время ожидания к этой строке

Defaults        env_reset

Таким образом, на 20 минут

Defaults        env_reset,timestamp_timeout=20

https: / /help.ubuntu.com/community/RootSudoTimeout

0
ответ дан 16 June 2012 в 16:26

но возможно ли, что если первый шаг, apt-get update займет очень много времени, пароль утратит силу к тому времени, когда команды apt-get upgrade наконец будут выполнены?

Ответ - да, sudo может перевести тайм-аут и снова попросить вас ввести пароль.

  • Другой метод, который все еще небезопасен (но, по крайней мере, не требует записи пароля в файл), описан в Как запустить приложение, используя sudo без пароля?

  • Если вы хотите перейти к подходу, в котором вы записываете свой пароль в открытом тексте, рассмотрите возможность объединения команды в цепочку и используйте sh для ее выполнения:

    echo password | sudo sh -c "apt-get update && apt-get upgrade"
    
    [ 1117] Таким образом, sudo требует, чтобы вы вводили пароль только один раз, а sh выполняется от имени пользователя root. Затем любые программы, запускаемые sh, автоматически запускаются с правами root.

  • Наконец, вы можете дважды передать пароль отдельным программам:

    echo password | sudo apt-get update && echo password | sudo apt-get upgrade
    
0
ответ дан 16 June 2012 в 16:26

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

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