.png)
Я не понимаю разницу между запуском команды от имени «user1» в терминале и запуском команды от имени «sudo -Hiu user1 [команда]».
Если я запускаю
/home/user1/script.sh
, скрипт успешно вызывает программу, которая обращается к GNOME/Keyring, и программа получает пароль без каких-либо проблем.
Однако если я запускаю sudo -Hiu user1 /home/user1/script.sh
, программа, вызываемая скриптом, не может успешно получить доступ к GNOME/Keyring.
В чем разница между выполнением команд от имени пользователя user1 и запуском sudo -Hiu user1 [command]
, и как можно полностью изменить пользователя, например, с root на user1 в bash?
решение1
По сути, нет никакой разницы между запуском sudo -Hiu user1 [command]
и запуском [command]
как user1
(или даже запуском sudo [command]
), хотя есть некоторые тонкие различия (как указано в вашем вопросе). Большинство из них связаны с GNOME, которые можно обойти с помощью команды gksudo
(или в более новых системах с помощью admin:///full/path/to/command arguments
или pkexec [command] arguments
).
Вы можете использовать su user1
root (или любого другого пользователя, если знаете пароль) для запуска оболочки как user1
.