一,sudo命令描述
sudo允许允许的用户以超级用户身份执行命令,或者安全策略指定的另一个用户。调用用户的真实(无效)用户ID用于确定用户名查询安全策略。它允许系统管理员分配给普通用户一些合理的“权利”,让他们执行一些只有超级用户或其他特许用户才能完成的任务,比如:运行一些像mount,halt,su之类的命令,或者编辑一些系统配置文件,像/etc/mtab, /etc/samba/smb.conf等。这样以来,就不仅减少了root用户的登陆次数和管理时间,也提高了系统安全性。
#详细man文件可见http://man.he.net/?topic=sudo§ion=all
二,sudo作用以及优点
sudo设计者的宗旨是:给用户尽可能少的权限但仍允许完成他们的工作
1,sudo能够限制指定用户在指定主机上运行某些命令。
2,sudo可以提供日志,忠实地记录每个用户使用sudo做了些什么,且能将日志传到中心主机或者日志服务器。
3,sudo为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机。它默认的存放位置是/etc/sudoers。
4,sudo使用时间戳文件来完成类似“检票”的系统。当用户执行sudo并且输入密码后,用户获得了一张默认存活期为5分钟的“入场券”。
三,语法格式:sudo [参数]
常用参数:
-v 因为 sudo 在第一次执行时或是在 N分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过N分钟,也会问密码-k 强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)-b 将要执行的指令放在背景执行-p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称,%h 会显示主机名称-s 执行环境变数中的SHELL 所指定的shell ,或是 /etc/passwd 里所指定的 shellcommand 要以系统管理者身份(或以 -u 更改为其他人)执行的指令
四,配置sudo
1,可以使用vim直接来编辑sudo的配置文件,但sudo提供了更加智能的编辑命令visudo,它能在编辑配置文件的同时帮我们检查语法错误,并在错误时提供快捷的返回功能。
(小提示:设置下EDITOR=vim来替换默认的vi,可以打开的时候语法高亮)
#编辑profile文件vim ~/.bash_profile #添加如下行,wq保存退出 export EDITOR=vim# 再输入命令,让其立即生效source ~/.bash_profile
2,配置文件
/etc/sudoers是sudo的主配置文件,建议在/etc/sudoers.d/下面创建文件编辑,以免破坏主配置文件
# 这里我给oracle2用户一些sudo权限,#命令会在sudoers.d目录下创建一个文件的visudo -f /etc/sudoers.d/fw
五,实例
1,给root权限
visudo -f /etc/sudoers.d/fw#添加下面行fw ALL=(ALL) ALL
验证:设置前图1,设置后图2,可以发现设置后,fw用户已经可以访问root用户
2,fw用户只能在指定主机远程登录并以root身份执行ifconfig eth0命令。
visudo -f /etc/sudoers.d/fw#添加下面行Cmnd_Alias NETCMND = /sbin/ifconfig eth0fw 192.168.142.163 = (root) NOPASSWD:NETCMND
3,fw用户可以执行/usr/sbin下的所有命令除了/usr/sbin/userdel
visudo -f /etc/sudoers.d/fw#添加下面行fw ALL=(ALL) /usr/sbin/,!/usr/sbin/userdel
visudo -f /etc/sudoers.d/fw
#添加下面行
fw ALL=(ALL) /usr/sbin/,!/usr/sbin/userdel