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

説明で述べたように、他のユーザーはスクリプトを実行できません。したがって、上記のようにユーザーの所有権とグループの所有権を変更し、実行可能ファイルとして表示しますchown www-data:www-data /var/www/db_backup.sh && chmod +x /var/www/db_backup.sh。 2番目の質問については別に質問する必要がありますが、とにかくスクリプトに含まれている内容を正確に知らないと、何が間違っているのかを伝えることは困難です。

関連情報