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

Другие вопросы по тегам