2014-03-12 65 views
2

須藤版本:1.7.2p1須藤NOPASSWD不登記/工作/顯示

我在sudoers文件如下(消毒)線(在文件的結尾):

Runas_Alias GROUPALIASNAME = user1,user2, user3 
Cmnd_Alias APP = /path/to/binary/setup -f *, /path/to/binary/patchbinary 
%groupname 
ALL=(root)NOPASSWD:SOFTWARE,(GROUPALIASNAME)NOPASSWD:APP 

如果我運行「命令-ll」從%組名(用戶3)我得到下列用戶:

Sudoers entry: 
    RunAsUsers: root 
    Commands: 
     NOPASSWD: /bin/rpm, /usr/bin/up2date, /usr/bin/yum 

    RunAsUsers: user1, user2, user3 
    Commands: 
     /path/to/binary/setup -f *, 
     /path/to/binary/patchbinary 

我似乎無法獲得第二個「NOPASSWD」項工作。我嘗試刪除所有空白,添加空格。我試過了「NoPasswd:all」,它使它給出了「all」而不是「nopasswd:all」。我知道規則是匹配的,因爲很明顯,我可以看到擴展的特定條目。最後的條目應該排除任何衝突的規則。 有關診斷此問題的任何想法或建議?不幸的是,它是一個'安全'的機器,所以應用補丁/更新sudo不是一種選擇。 **對「軟件」的引用只是默認的sudoers條目。

編輯:現在我已經解決了這個問題,將1行分成2行。除了使用%groupname ALL =插入換行符之外,我沒有做任何其他修改,現在它正確顯示了無密碼執行命令的權限。但它仍然需要密碼。

+0

你可以發佈你的完整(redacted)sudoers,因爲默認設置可以在不同的操作環境(即Debian vs OpenSuse vs ...)之間有所不同嗎? – 6EQUJ5

+0

此外,在發佈代碼/輸出時,請儘量避免從HTML發佈,因爲它無法正確呈現 - 它需要縮進四個空格;作爲提示,如果您從電子郵件粘貼複製到文本編輯器並在粘貼到SO之前修復它:-) – 6EQUJ5

+0

感謝您對它進行格式設置。我不確定如何達到正確的效果。張貼整個sudoers是很難的,因爲會有太多需要改變的地方,改變它可能會引入錯誤。 – BSAFH

回答

3

以輔助調試和維修,你應該分裂您的規則:

%groupname ALL=(root) NOPASSWD: SOFTWARE 
%groupname ALL=(GROUPALIASNAME) NOPASSWD: APP 

分割你的規則到不同的線條使得它更清晰的你正在嘗試做的。

確保您試圖運行sudo的用戶位於%groupname

確保您使用的東西類似sudo -u user1(etc),所以Runas_alias實際上是有效的。

您需要做的另一件事是,如果您正在測試作爲目標用戶的更改,如果您剛剛將用戶添加到%groupname,則需要註銷並重新登錄才能實際工作。

+0

我做了分裂,我認爲問題實際上是2個問題。首先是原始文章中的詳細描述(NOPASSWD未註冊該Cmnd_Alias),第二個可能僅僅是我缺乏知識。 如果我運行'sudo -u user1 APP',它會正常執行。如果我運行'sudo -Hinu user1 APP',那麼我得到密碼錯誤。我通常不使用Hinu,所以我會更仔細地研究其他參數如何影響結果。 編輯:澄清 - 一旦我拆分線NOPASSWD顯示在sudo -ll。我不確定我是否可以將其分開製作sudoers文件已經很大。 – BSAFH

+0

它是導致休息的-Hinu中的「我」。可能是目標服務帳戶的個人資料中的某些內容。 -Huu工作正常。不幸的是,我必須嚴格使用-Hinu才能回到書本上。如果您的下一個反應更好,現在將不會給您答覆。 – BSAFH

+0

正如以上編輯中指出的那樣,有兩個問題。 第一個是單行(對於%組)需要被分成2.我不清楚它是什麼。 第二個問題是sudo上的「-i」標誌沒有列在我原來的問題中。執行時,「-i」轉換爲「bash -c」。 所以最終的結果是APP被定義爲之前的版本,但在每個命令之前都附加了「/ bin/bash -c」,並且根據Andrew McDonnell的帖子,以%groupname開頭的行被拆分。我還有其他用戶和組的所有行都沒有問題。不知道爲什麼,但確定關閉。 – BSAFH