Linux

sudo 作為具有 sudo 權限的使用者?

  • November 9, 2010

Alice 擁有 sudo 權限。Bob 不知道(這是不可更改的),但知道 Alice 帳戶的密碼。

如果 Bob 想要執行管理命令,他必須:

  1. su alice
  2. 為 su 填寫 Alice 的密碼
  3. sudo whoami
  4. 填寫 Alice 的 sudo 密碼
  5. 命令以超級使用者權限執行

為了縮短這個我使用:su -m alice -c 'sudo whoami'

但是,我想建構一個別名命令,用正常的 sudo 命令替換這個乏味的命令。

所以我做了這個:alias sudo="su -m alice -c 'sudo $@'"

2個警告:

  • 它不起作用
  • 它總是要求 Alice 的 su 密碼,它確實記得的 sudo 密碼

我怎樣才能做得更好?

謝謝!

這取決於 sudoers 配置。如果設置了“預設要求”,則此方法將不起作用。

suds () { 
   ARGS="$@"
   /bin/su -m alice -c "/usr/bin/sudo  TERM=xterm $ARGS"
}

關於這個的一些評論

  1. 它將始終要求 alice 的密碼來驗證 su。
  2. 當一個變數用單引號偏移時,它通常不會被擴展。
  3. 我傾向於使用函式而不是別名,它們允許我為轉換添加更多邏輯。
  4. 從安全的角度來看,這是一個壞主意。在實施之前確保這不違反當地政策。

富有的

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