На этот вопрос уже есть ответ здесь:
У меня есть простое очень маленькое веб-приложение, и я хотел немного облегчить себе жизнь, создав очень простой сценарий развертывания, который делает следующее:
Сценарий в основном работает хорошо и выглядит так:
#!/bin/bash
echo "Updating repository ...";
sudo git pull;
echo "Installing composer dependencies from lockfile ...";
composer install;
echo "Changing owner to www-data:www-data ...";
sudo chown -R www-data:www-data .;
echo "Deployment DONE!";
Однако, как вы можете видеть, у меня есть две команды, выполняемые как sudo в этом сценарии. Это git pull
и chown
.
Моя проблема заключается в следующем: Я знаю, что существует таймаут на то, как часто система запрашивает мой пароль при выполнении команд с sudo. Проблема в том, что, даже если я не превышаю таймаут, скрипт всегда запрашивает пароль на второй команде sudo (chown).
Может кто-нибудь просветить меня, почему так происходит?
Почему не делают Вас, запускают скрипт с sudo
как это:
sudo bash /path/to/script.sh
, Где script.sh
имеет после содержания без sudo
:
#!/bin/bash
echo "Updating repository ...";
git pull;
echo "Installing composer dependencies from lockfile ...";
composer install;
echo "Changing owner to www-data:www-data ...";
chown -R www-data:www-data .;
echo "Deployment DONE!"
Этот путь сценарий только попросит у Вас пароля в течение 1 раза.
Я действительно не знаю то, что является причиной, однако существует решение:
if [[ $(id -u $(whoami)) != 0 ]]
then
sudo bash $( cd $(dirname $0) ; pwd -P )
# taken from http://stackoverflow.com/a/4774063/2797066
else
#rest of script
fi
gnome-tweak-tool
действительно существенный пакет для любого, кто на самом деле использование их компьютеры больше 5 минут. – pipe 21 October 2017 в 03:08