Bash

為什麼“su - X”需要密碼,而“sudo -u X bash”不需要?

  • November 4, 2020

我知道“為什麼”問題很危險 :) 我在 RHEL 上有 sudo 訪問權限,並註意到了這一點:

su - fred
Password:

(我不知道弗雷德的密碼)。

sudo -u fred bash
[fred] $

有沒有辦法不需要弗雷德的密碼來做su?有理由想要那個嗎?

不同之處在於sudo使用附加到您正在執行的帳戶的權限,而su更類似於以您要更改的使用者身份在正常提示下登錄。

嘗試su root作為在文件中沒有權限的普通使用者sudoers- 您可以使用root憑據更改為該使用者,而不管您目前使用者的權限如何。

相反,sudo在您的文件中分配的權限/etc/sudoers允許您目前的使用者以 root 身份工作,而無需知道除您自己的任何密碼之外的任何密碼。例如,添加sudo到您的su -u fred命令的前面 - 不再需要 fred 的密碼,因為su它正在以 root 權限執行。

引用自:https://serverfault.com/questions/353321