Sudo

我沒有獲得特權,已編輯 /etc/sudoers

  • June 6, 2015

我想在不詢問 root 密碼的情況下執行任何程序。因為我是唯一使用這個系統的人。所以我用Google搜尋並編輯了/etc/sudoers.

我做了什麼:

# chmod 640 /etc/sudoers
# vim /etc/sudoers

添加瞭如下一行:

# User privilege specification
root    ALL=(ALL:ALL) ALL
sgg ALL=(ALL:ALL) ALL

保存並關閉文件。重新啟動系統。但沒有改變/改進。我要更改任何其他行嗎?或者有什麼辦法嗎?

編輯:

1.我將權限更改/etc/sudoers0440. ls -l /etc/sudoers結果是

-r--r----- 1 root root 772 May  4 19:43 /etc/sudoers

2.我跑# visudo。文件內容是

Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL
sgg ALL=NOPASSWD:ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

但是當我執行時它仍然要求輸入密碼sudo ls

系統資訊Ubuntu 14.04 x86_64 3.13.0-24-generic

首先是一些一般性的觀點:

  1. 永遠不要直接編輯/etc/sudoers。您應該始終使用sudo visudo它來代替它,它允許您編輯文件,但在保存之前檢查它是否有錯誤。的語法sudoers很棘手,一個錯誤可能會使您的系統無法使用,因為您將無法再使用sudo.
  2. 永遠不要更改/etc/sudoers. 通常,您不應更改系統文件的權限。在許多情況下,與它們相關的程序將無法正常執行,這是不好的做法和安全漏洞。這就是最初sudo的用途,因此您無需更改權限。

此外,如果您已將權限設置/etc/sudoers為 640 並且能夠對其進行寫入,則意味著您也已將其所有者更改為您的使用者。這將有效地打破它。如中所述man sudoers

/etc/sudoers 由 gid N 擁有,應為 1 sudoers 文件具有錯誤的組所有權。如果您希望更改 sudoers 文件組的所有權,請在 sudo.conf(5) 文件的 sudoers 外掛行中添加“sudoers_gid=N”(其中“N”是擁有 sudoers 文件的組 ID)。

  1. 如果您希望普通使用者能夠安裝驅動器,更好的方法是在/etc/fstab. 使用你的例子,你會想要這條線:
/dev/sda6   /media/sgg/D    vfat    users,rw,errors=remount-ro,noauto  0   0

這將允許普通使用者安裝它

mount /dev/sda6
  1. 如果儘管如此,您仍然希望允許您的使用者在沒有密碼的情況下執行任何命令,那麼您要添加到/etc/sudoers(使用sudo visudo)的行是:
sgg ALL=NOPASSWD:ALL

保存文件並退出visudo並嘗試執行sudo ls,您不應該被要求輸入密碼。我剛剛測試並可以確認它適用於我的 LMDE。

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