Доброго времени суток, возникла следующая проблема.
Существует пользователь N, которому дан доступ к исполнению скриптов, которые отправляют команды в screen'ы, запущенные от root. При этом доступ пользователю N к screen напрямую давать не нужно. При исполнении от root скрипты работают прекрасно.
Я настроил multiuser в screen, но при запуске скрипта (даже если пользователь N имеет доступ к нему) получаю следующую ошибку:
userN@Debian-70-wheezy-64-LAMP:/srv/Omega162$ sh test.sh
Cannot opendir /var/run/screen/S-root: Отказано в доступе
На основании всего вышесказанного я сделал вывод, что bash-скрипт получает доступ к screen'у не от имени пользователя N. Вопрос - что же нужно сделать, чтобы дать доступ скриптам?
Код тестового скрипта:
#!/bin/bash
echo `screen -r root/Omega -p 0 -X stuff "say Тест $(printf '\r')"`
echo "Тест"
Исполняется только вторая строчка с выводом слова «Тест» в консоль (тут ничего удивительного).