Получение "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

Как мне предотвратить это сообщение и правильно выполнить команду?

0 ответов

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