Sudo
我沒有獲得特權,已編輯 /etc/sudoers
我想在不詢問 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/sudoers
為0440
.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
首先是一些一般性的觀點:
- 永遠不要直接編輯
/etc/sudoers
。您應該始終使用sudo visudo
它來代替它,它允許您編輯文件,但在保存之前檢查它是否有錯誤。的語法sudoers
很棘手,一個錯誤可能會使您的系統無法使用,因為您將無法再使用sudo
.- 永遠不要更改
/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)。
- 如果您希望普通使用者能夠安裝驅動器,更好的方法是在
/etc/fstab
. 使用你的例子,你會想要這條線:/dev/sda6 /media/sgg/D vfat users,rw,errors=remount-ro,noauto 0 0
這將允許普通使用者安裝它
mount /dev/sda6
- 如果儘管如此,您仍然希望允許您的使用者在沒有密碼的情況下執行任何命令,那麼您要添加到
/etc/sudoers
(使用sudo visudo
)的行是:sgg ALL=NOPASSWD:ALL
保存文件並退出
visudo
並嘗試執行sudo ls
,您不應該被要求輸入密碼。我剛剛測試並可以確認它適用於我的 LMDE。