Назад | Перейти на главную страницу

sudo по-прежнему запрашивает пароль при использовании NOPASSWD

Я хочу запустить этот скрипт (это перехватчик после получения репозитория git):

#!/bin/sh
echo "Executing post-receive hook as user `id` using `which sudo`"
sudo -l
sudo -n bash /var/project/autotest/autotest.sh

Он должен работать без запроса пароля, но я получил следующий результат:

Executing post-receive hook as user uid=1005(martinjonas) gid=1001(martinjonas)
groups=1001(martinjonas),1009(lifeweb),1017(project) using /usr/bin/sudo
Matching Defaults entries for martinjonas on this host:
    env_reset

User martinjonas may run the following commands on this host:
    (root) NOPASSWD: /var/project/autotest/autotest.sh
sudo: sorry, a password is required to run sudo

Как вы можете видеть, в соответствии с выводом sudo -l я должен иметь возможность запускать /var/project/autotest/autotest.sh без пароля, но sudo по-прежнему запрашивает пароль.

Это мой файл sudoers (это целый файл без дополнительных записей):

# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.

Defaults        env_reset

# Host alias specification
# User alias specification
# Cmnd alias specification

# User privilege specification
root    ALL=(ALL) ALL

# Allow members of group sudo to execute any command
# (Note that later entries override this, so you might need to move
# it further down)
%sudo ALL=(ALL) ALL
#
#includedir /etc/sudoers.d

www-data        ALL=(root) NOPASSWD: /usr/bin/svn up
%project       ALL=(root) NOPASSWD: /var/project/autotest/autotest.sh

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

Мы используем Debian 6.0 2. на этом сервере.

у тебя есть NOPASSWD запись для /var/project/autotest/autotest.sh, но ваша команда запущена bash /var/project/autotest/autotest.sh - это другая команда и поэтому она запрещена

удалять bash и все должно работать нормально.