Безопасен ли этот скрипт?

#security #bash #permissions #root

#Безопасность #bash #разрешения #root

Вопрос:

Мне нужно выполнить некоторые серверные задачи. Я много-много раз слышал, что это очень небезопасно. Это мое решение:

Добавлена эта строка в sudoers: www-data ALL=NOPASSWD: /var/private-www/bin/webadmin (Недоступна через Web)

Создал этот скрипт 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-data). www-data теперь может получить доступ к этому файлу, выполнив: exec('/usr/bin/sudo /var/private-www/bin/webadmin secretpassword', $output, $status);

Достаточно ли это безопасно? Как я могу сделать его более безопасным?

Комментарии:

1. if/then/else обычно имеет горизонтальный отступ, а не вертикальный. 🙂

Ответ №1:

Я думаю, что если ваш сервер Apache взломан, кто-то может получить доступ к этому скрипту и выполнить его, но я могу ошибаться.

Я наткнулся на ресурс, о котором вы, возможно, захотите прочитать, особенно когда речь идет об ограничении вашего скрипта внутренней сетью.

http://www.linuxsecurity.com/content/view/133913/171/

Надеюсь, это ответ на ваш вопрос.