Permissions

visudo + 如何從其他使用者獲得對使用者的訪問權限

  • March 27, 2017

在我的 Linux Red Hat 機器上,我從 root 執行以下操作

# su - starus
$                <--   now I am in starus user

$ su - moon      <-- now I want to access moon user from starus user
Password:

但是我被提示輸入密碼!

visudo如果已在以下內容中添加,請告知我為什麼要獲取密碼

moon ALL=(starus) NOPASSWD: ALL

怎麼了?

我也嘗試以使用者 moon 執行以下腳本,但需要密碼

starus@host sudo -u moon  /home/USER261/test.bash
[sudo] password for starus:

首先,root無需密碼即可成為任何使用者。這是成為超級使用者的特權之一。因此,使用,您可以在沒有提示的情況下su - starus切換到。starus但是,此時,您starus不再是root,因此您確實需要密碼才能切換到moon

簡單的解決方案是先切換回root(只需執行exit),然後切換到moon.

現在,visudo這裡無關緊要。您沒有使用sudo,因此您在此處(在編輯/etc/sudoers的文件中visudo)所做的任何更改都不會影響 的行為su,只有那些sudo不是同一個程序的行為。

在任何情況下,您顯示的 ( moon ALL=(starus) NOPASSWD: ALL) 行僅表示使用者moon可以以使用者身份執行任何命令,starussudo無需輸入密碼。這並不意味著任何人都可以在moon不知道moon密碼的情況下成為。這只是意味著像這樣的命令不需要密碼:

moon@host $ sudo -u starus command

如果您以 身份登錄moon,則可以使用sudo以身份執行命令而starus無需密碼。

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