Действительно ли возможно звонить из сценария удара, работать как sudo, другой сценарий с полномочиями обычного пользователя?
Другая опция состояла бы в том, чтобы выполнить определенную команду как обычного пользователя, но целый скрипт будет запущен как суперпользователь.
P.S. то, Что я хочу сделать, должно настроить Средство запуска из скрипта установки, который должен быть запущен как sudo.
Существует несколько путей. Если просто необходимо выполнить одну команду без каких-либо параметров, можно использовать sudo -u <username>
#!/bin/bash
whoami
sudo -u otheruser whoami
whoami
, Но если необходимо выполнить несколько команд, команды с параметрами, или что-либо с пробелом в ней, тот метод не работает.
#!/bin/bash
ls /some/dir
sudo -u otheruser ls /some/dir # not working as expected
ls /some/dir
Это также не помогает заключить команду в кавычки как sudo -u otheruser "ls /some/dir"
.
В тех случаях, можно просто явно переключить пользователя с su
#!/bin/bash
whoami; ls /some/dir
su otheruser -c "whoami; ls /some/dir"
whoami; ls /some/dir