не работает bash скрипт от www-data
С вебсайта на питоне хочу запустить скрипт. Пробовал и так:
res = os.system('sudo /var/www/site/script.sh')
и так:
res = subprocess.call(['sudo','/var/www/site/script.sh'])
Скрипт(комментарий sudo я убирал, проверял экзит код вывода юзера в файл):
#!/bin/bash
echo "$USER" > /test1/testw/check
#sudo chown root:root /test1/testw/block_social
status=$?
echo "status : ${status}">> /test1/testw/check
В sudoers:
www-data ALL=(root) NOPASSWD: /bin/chown root:root /test1/testw/block_social, /var/www/site/script.sh
у скрипта
-rwxr-x--- 1 root root 153 Aug 10 17:35 /var/www/site/script.sh
Ошибки эксит кода в баше 127(нет такое команды - пробовал /bin chown) или 32512 Как я думаю все должно работать: 1)скрипту ставим хозяином рута, выполнение даем только руту 2)в sudoers для www-data разрешаем без пароля выполнять скрипт 3)на сайте в питоне перед командой пишем sudo и все должно работать. Но не работает. Пошел другим путем, разрешил выполнять скрипт всем, тогда скрипт добавляет данные в тестовый файл, пользователь www-data, все норм. Когда в скрипте пишу sudo chown и в sudoers разрешаю делать без пароля этот chown опять не работает. Т.е работает когда назначить хозяином файлов www-data.
Прошу помощи, хотелось бы прописать в sudoers выполнение скрипта без пароля, а т.к. в этом случае скрипт будет запущен с привелегиями рута, то внутри него я смогу прописывать chown chmod и все что угодно.