Linux

以另一個使用者身份執行“su 命令”

  • January 27, 2022

我有一個使用者user1,它屬於wheel group並擁有所有root privileges .

user1能夠user2使用以下命令更改密碼(我的理解是這裡passwd執行為root):

[user1@rhel-85 ~]$ sudo passwd user2

但是,當user1嘗試執行passwdasuser2時,出現錯誤:

[user1@rhel-85 ~]$ su -u user2 passwd
Try 'su --help' for more information.
[user1@rhel-85 ~]$ 

su 用於啟動一個 root shell,它允許所有進一步的命令使用 root 訪問。su沒有 -u 選項…

https://man7.org/linux/man-pages/man1/su.1.html

這就是它說/抱怨的原因;

嘗試“su –help”以獲取更多資訊。

您需要將 user1 添加到輪組,然後正如 Bodo 指出的那樣,執行;

sudo -u user2 passwd

我很清楚 sudo 是您在這裡的預期用途,因為您正在嘗試執行具有臨時權限提升的單個命令。(這就是 sudo 的用途)。

但是,為了完整起見,正如使用者 Bib 指出的那樣,您可以執行;

su - _user_ foo

…這將允許您以 root 身份為另一個使用者執行。

這是su( -, -l or --login) 的“登錄 shell”選項。這對於在使用者沒有sudo權限(以及管理員也不希望他們擁有權限)的場景中授予 root 權限也很方便。

引用自:https://unix.stackexchange.com/questions/688220