1.下面是修改方法:ubuntu
1)進入超級用戶模式。也就是輸入"su -",系統會讓你輸入超級用戶密碼,輸入密碼後就進入了超級用戶模式。(固然,你也能夠直接用root用)
2)添加文件的寫權限。也就是輸入命令"chmod u+w /etc/sudoers"。
3) 編輯/etc/sudoers文件。也就是輸入命令"vim /etc/sudoers",輸入"i"進入編輯模式,找到這一 行:"rootALL=(ALL) ALL"在起下面添加"xxx ALL=(ALL) ALL"(這裏的xxx是你的用戶名),而後保存(就是先按一下Esc鍵,而後輸入":wq")退出。
4)撤銷文件的寫權限。也就是輸入命令"chmod u-w /etc/sudoers"。vim
2.另外一種修改sudoers的方法服務器
sudo都提供了一個編輯該文件的命令:visudo來對該文件進行修改。強烈推薦使用該命令修改 sudoers,由於它會幫你校驗文件配置是否正確,若是不正確,在保存退出時就會提示你哪段配置出錯的。oracle
(改命令需超級用戶:su -) visodo /bin/sudoerside
3.對sudoers文件詳細講解ui
A.首先寫sudoers的缺省配置:
###########################################################
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#ci
Defaults env_reset
# Host alias specificationcmd
# User alias specificationit
# Cmnd alias specificationio
# Defaults specification
# User privilege specification
root ALL=(ALL) ALL
# Uncomment to allow people in group wheel to run all commands
# %wheel ALL=(ALL) ALL
# Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
# Samples
# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users localhost=/sbin/shutdown -h now
########################################################
B。最簡單的配置,讓普通用戶ubuntu具備root的全部權限
執行visudo以後,能夠看見缺省只有一條配置:
root ALL=(ALL) ALL
那麼你就在下邊再加一條配置:
ubuntu ALL=(ALL) ALL
普通用戶ubuntu就可以執行root權限的全部命令。
以ubuntu用戶登陸以後,執行:
sudo su -
而後輸入ubuntu用戶本身的密碼,就能夠切換成root用戶了。
C。讓普通用戶ubuntu只能在某幾臺服務器上,執行root能執行的某些命令。
首先須要配置一些Alias,這樣在下面配置權限時,會方便一些,不用寫大段大段的配置。Alias主要分紅4種
Host_Alias
Cmnd_Alias
User_Alias
Runas_Alias
1) 配置Host_Alias:就是主機的列表
Host_Alias HOST_FLAG = hostname1, hostname2, hostname3
2) 配置Cmnd_Alias:就是容許執行的命令的列表
Cmnd_Alias COMMAND_FLAG=cmd1,cmd2,cmd3
3) 配置User_Alias:就是具備sudo權限的用戶的列表
User_Alias USER_FLAG = user1, user2, user3
4) 配置Runas_Alias:就是用戶以什麼身份執行(例如root,或者oracle)的列表
Runas_Alias RUNAS_FLAG = operator1, operator2, operator3
5) 配置權限
配置權限的格式以下:
USER_FLAG HOST_FLAG=(RUNAS_FLAG) COMMAND_FLAG
若是不須要密碼驗證的話,則按照這樣的格式來配置
USER_FLAG HOST_FLAG=(RUNAS_FLAG) NOPASSWD: COMMAND_FLAG
配置示例:
#
# Host alias specification
Host_Alias EPG = 192.168.1.1, 192.168.1.2
# User alias specification
# Cmnd alias specification
Cmnd_Alias SQUID = /opt/vtbin/squid_refresh, /sbin/service, /bin/rm
# Defaults specification
# User privilege specification root ALL=(ALL) ALL ubuntu EPG=(ALL) NOPASSWD: SQUID