sudo 使用時に受信権限が拒否されました

sudo 使用時に受信権限が拒否されました

/etc/sudoersvia コマンドに次の 1 行を追加しました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

コメントに記載されているように、スクリプトは他のユーザーからは実行できません。したがって、前述のように、ユーザー所有権とグループ所有権を変更し、実行可能としてマークします。2chown www-data:www-data /var/www/db_backup.sh && chmod +x /var/www/db_backup.sh番目の問題については、別途質問する必要がありますが、いずれにしても、スクリプトに何が含まれているかを正確に知らなければ、何が問題なのかを判断するのは困難です。

関連情報