sudo를 사용할 때 수신 권한이 거부되었습니다.

sudo를 사용할 때 수신 권한이 거부되었습니다.

/etc/sudoersvia 명령 에 다음 한 줄을 추가했습니다 visudo.

www-data ALL=(ALL) NOPASSWD: /var/www/db_backup.sh

명령을 실행한 후 www-data:

sudo -u www-data /var/www/db_backup.sh

다음 메시지를 받았습니다.

sudo: unable to execute /var/www/db_backup.sh: Permission denied

이전에 동일한 프로그램을 문제 없이 사용했는데 왜 이런 일이 발생하는지 잘 모르겠습니다. 내가 간과하고 있는 뭔가가 있을 겁니다. 누구에게나 조언이 있습니까? 내 /etc/sudoers파일은 다음과 같습니다.

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
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


www-data ALL=(ALL) NOPASSWD: /var/www/db_backup.sh



# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

또한 참고로, sudo /var/www/db_backup.shwww-data에서 실행되는 PHP 프로세스 내에서 명령을 실행하려고 하면 다음 메시지가 나타납니다(비록 이것이 sudoers 파일에서 권한을 얻지 못하는 문제일 뿐이라고 가정합니까?).

sudo: no tty present and no askpass program specified

편집하다

ls -al /var/www/db_backup.sh

다음과 같은 결과가 생성됩니다.

-rwxrwx--- 1 root root 523 Jan 7 2019 /var/www/db_backup.sh

답변1

설명에서 언급했듯이 다른 사용자는 스크립트를 실행할 수 없습니다. 따라서 위와 같이 사용자 소유권과 그룹 소유권을 변경한 다음 실행 파일로 표시합니다 chown www-data:www-data /var/www/db_backup.sh && chmod +x /var/www/db_backup.sh. 두 번째 질문에 대해서는 별도로 질문해야 하지만 어쨌든 스크립트에 포함된 내용을 정확히 알지 못하면 무엇이 잘못되었는지 말하기가 어렵습니다.

관련 정보