Мне нужно выполнить некоторые задачи на сервере.Теперь я много раз слышал, что это очень небезопасно.Это мое решение:
Добавлена эта строка в sudoers: www-data ALL=NOPASSWD: /var/private-www/bin/webadmin
(недоступно через Интернет)
Создан этот скрипт var/private-www/bin/webadmin
:
# Script for executing server tasks.
#
# Arguments:
# - Password Required for authentication, not all scripts may run this file
# - Action Action to execute
# Exit codes:
# 0 Failed
# 1 Success
# First of all check the password
if [ $1 = "secretpassword" ]
then
whoami
exit 1
else
echo "No access"
exit 0
fi
Файлимеет следующие права: 0111
Доступ по SSH разрешен только для одной учетной записи.Так что никто не может выполнить скрипт, кроме меня (и www-данных).www-data теперь может получить доступ к этому файлу: exec('/usr/bin/sudo /var/private-www/bin/webadmin secretpassword', $output, $status);
Достаточно ли это безопасно?Как я могу сделать это более безопасным?