su sudo命令 sudo命令功能_配置文件

一,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用户

su sudo命令 sudo命令功能_sudo命令_02

su sudo命令 sudo命令功能_配置文件_03

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