Полное переключение пользователей в Bash (проблемы GNOME/Keyring)

Полное переключение пользователей в Bash (проблемы GNOME/Keyring)

Я не понимаю разницу между запуском команды от имени «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 user1root (или любого другого пользователя, если знаете пароль) для запуска оболочки как user1.

Связанный контент