Я пытаюсь выполнить сценарий bash как root от обычного пользователя. Суть в том, что мне нужно, чтобы пользователь www-data мог убить определенный процесс. Чтобы Apache не мог нанести ущерб процессам, я создал следующий сценарий bash
#!/bin/bash
PID=$(pgrep mono)
kill -9 $PID
Чтобы выполнить это, я сделал apt-get install sudo
а затем с visudo
добавила следующую строку в конец файла
myuser ALL= NOPASSWD: /path/to/script/foo.sh
Но когда я вхожу в myuser и пытаюсь запустить /path/to/script/foo.sh
Я получаю следующую ошибку -bash: /path/to/script/foo.sh: Permission denied
Текущие разрешения файла следующие
-rwxr-xr-x 1 root root 48 Nov 7 12:11 foo.sh
Спасибо!
Чтобы использовать sudo, вам нужно добавить к команде префикс sudo. то есть:
$ sudo /path/to/script/foo.sh
Войдите в систему под root и сделайте следующее:
cd /path/to/script
chmod u+x foo.sh
./foo.sh
Проверьте, работает ли программа. Теперь переключитесь на myuser,
su myuser
и попробуйте снова запустить программу:
/path/to/script/foo.sh