Как запустить скрипт командной формы `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