Получение "sudo: tty отсутствует и не указана программа askpass", даже если я поместил пользователя в свой файл /etc/sudoers
Я использую Ubuntu 14.04. Я отредактировал свой файл /etc/sudoers так, чтобы он выглядел так
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
%deployers ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
И я добавил одного из моих системных пользователей в группу "развертывателей"…
rails@mymachine:~$ whoami
rails
rails@mymachine:~$ groups
rails deployers
Тем не менее, когда я запускаю свой скрипт как пользователь выше, используя команду "sudo", я получаю ошибку "sudo: нет tty присутствует и не задана программа askpass". Вот сценарий в вопросе...
. ~/.bash_profile
echo "$PATH"
whoami
while read oldrev newrev ref
do
if [[ $ref =~ .*/master$ ]];
then
echo "Master ref received. Deploying master branch to production..."
mkdir -p $WORK_TREE
git --work-tree=$WORK_TREE --git-dir=$GIT_DIR checkout -f
mkdir -p $WORK_TREE/shared/pids $WORK_TREE/shared/sockets $WORK_TREE/shared/log
# start deploy tasks
cd $WORK_TREE
sudo bundle install
и вот вывод...
remote: /usr/lib/git-core:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/rvm/rubies/ruby-2.3.0/bin
remote: rails
remote: Master ref received. Deploying master branch to production...
remote: sudo: no tty present and no askpass program specified
Как мне предотвратить это сообщение и правильно выполнить команду?