
Я добавил следующую строку в /etc/sudoers
команду via 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.sh
из процесса php, работающего под www-data, появляется следующее сообщение (хотя я понимаю, что это просто из-за проблемы с разрешениями, которые не берутся из файла 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
. Что касается вашей второй проблемы, ее следует задать отдельно, но в любом случае, не зная точно, что содержит скрипт, трудно сказать, в чем проблема.