Как запустить скрипт командной формы `chmod` с правами sudo?
Я хочу изменить разрешения /dev/ttyACM0 из скрипта.
Я попробовал эту команду:
su -c "chmod -R 777 /dev/ttyACM*" -m "$user".
Когда я выполняю скрипт, он запрашивает пароль. Я хочу запустить это без запроса пароля.
Я пытался добавить пользователя в /etc/sudoers, но это не работает.
Это CGI-скрипт. Не работают внешние запросы (т.е. с других IP-адресов).
user ALL= (user) NOPASSWD: /usr/lib/cgi-bin/test.cgi
Как я могу изменить разрешения, чтобы любой мог выполнить скрипт с других IP-адресов?
1 ответ
Вы не сказали, почему решение sudo не работает, но устранение неполадок sudo довольно обременительно. Эта тестовая линия в /etc/sudoers работал на меня
cgiuser ALL = (root) NOPASSWD: /bin/chmod -R 777 /tmp/xxx*
так что попробуйте. Ваш /etc/sudoers линия будет
user ALL = (root) NOPASSWD: /bin/chmod -R 777 /dev/ttyACM*
и ваш сценарий будет иметь
/usr/bin/sudo /bin/chmod -R 777 /dev/ttyACM*
Просто убедитесь, что скрипт работает как userдля сценария cgi это, вероятно, apache или же www-data,
PS: предыдущий ответ просто неверен. При условии, что вы принадлежите к sudo группа или иным образом имеют привилегии, sudo su - отлично работает, чтобы стать пользователем root, даже если пароль root не установлен.sudo -s вероятно, лучше, однако. YMMV