![在 Bash 中完全切換使用者(GNOME/密鑰環問題)](https://rvso.com/image/154456/%E5%9C%A8%20Bash%20%E4%B8%AD%E5%AE%8C%E5%85%A8%E5%88%87%E6%8F%9B%E4%BD%BF%E7%94%A8%E8%80%85%EF%BC%88GNOME%2F%E5%AF%86%E9%91%B0%E7%92%B0%E5%95%8F%E9%A1%8C%EF%BC%89.png)
我對在終端機中以“user1”身份運行命令和以“sudo -Hiu user1 [command]”身份運行命令之間的區別感到困惑。
如果我運行
/home/user1/script.sh
,腳本會成功呼叫存取 GNOME/Keyring 的程序,並且該程式會毫無問題地取得密碼。
但是,如果我運行sudo -Hiu user1 /home/user1/script.sh
,腳本呼叫的程式將無法成功存取 GNOME/Keyring。
以 user1 身分執行指令和執行指令之間有什麼區別sudo -Hiu user1 [command]
?
答案1
儘管存在一些細微的差異(如您的問題中提到的),但runningsudo -Hiu user1 [command]
與 running [command]
as user1
(甚至 running )之間本質上沒有區別。sudo [command]
其中大多數與 GNOME 有關,可以透過使用命令gksudo
(或在較新的系統上使用admin:///full/path/to/command arguments
或pkexec [command] arguments
)來規避。
您可以su user1
以 root 身分(或如果您知道密碼,則以任何其他使用者身分)來執行 shell user1
。