Sudo

如何在 debian wheezy 上正確配置 sudoers 文件?

  • February 13, 2016

我看過很多博文說,做就夠了

aptitude install sudo
su root
adduser USERNAME sudo

但這只會保護aptitude,換句話說:

  • aptitude install sendmail將要求輸入密碼,您需要 sudo執行aptitude
  • apt-get install sendmail不會要求輸入密碼,不需要sudo特權
  • 如果您編輯受保護的文件,例如其中的文件etc不會要求輸入密碼,則不需要sudo特權
  • 您可以執行和停止服務,例如apache,它不會要求輸入密碼,不需要sudo特權

如何解決這個問題?這是我的 sudoers 文件:

This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:$

# Host alias specification

# User alias specification

# Cmnd alias specification

這是的輸出sudo -l

Matching Defaults entries for root on this host:
   env_reset, mail_badpass,
   secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User root may run the following commands on this host:
   (ALL : ALL) ALL
   (ALL : ALL) ALL

您尚未添加任何 sudo 規則,因此您不能將 sudo 用於任何事情。

該命令adduser USERNAME sudo將指定使用者添加到名為 的組sudo中。必須存在具有該名稱的組;addgroup sudo如果沒有,請創建它。將使用者添加到組後,使用者必須註銷並重新登錄才能使組成員身份生效。

sudo不是特殊的組名。這是一個約定,允許被呼叫組中的sudo使用者通過該sudo實用程序以 root 身份執行命令。這需要文件中的以下行sudoers

%sudo ALL = (ALL) ALL

執行visudo編輯 sudoers 文件,不要直接編輯它。

我不知道你為什麼相信“那隻會保護能力”。天賦沒什麼特別的。一旦您授權使用者以 root 身份執行命令,該使用者就可以執行sudo aptitude …orsudo apt-get …sudo service …, 或sudoedit編輯需要 root 權限才能編輯的文件。在 sudoers 文件中不會直接更改使用者的權限,它的作用是允許您以sudoroot 身份執行命令。僅當您通過sudo. 有些程序可能會自動執行此操作,尤其是 GUI 程序,其中使用者界面在沒有特殊權限的情況下執行,並且只有後端以 root 身份執行,但以 root 身份執行的命令始終由sudo.

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