sudo是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登陆和管理时间,同样也提高了安全性。
Sudo不是对shell的一个代替,它是面向每个命令的。它的特性主要有这样几点:
§ Sudo能够限制用户只在某台主机上运行某些命令。
§
Sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器。
§ Sudo
使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票(这个值可以在编译的时候改变)。
§ Sudo的配置文件是sudoers
文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0411。一,安装
检测是否已经安装了SUDO:
[root@localhost ~]# rpm -q sudo
sudo-1.6.8p12-4.1
如果没有安装
,
下载软件包进行安装
:
对于大多数系统来说,
sudo
的配置都是相对比较简单的:
0) $> cd /;cp sudo-1.6.8p12.tar.gz /
1) $> tar vxzf sudo-1.6.8p12.tar.gz
2) make
3) make install
二.编辑执行visudo命令:
如下面是一个极为简单的例子 :
加入如下几行:
Defaults syslog=auth
Defaults logfile=/var/log/sudo.log
Cmnd_Alias SHUTDOWN=/sbin/halt,/sbin/shutdown
root ALL=ALL
用户名
ALL=ALL
这样不同用户就可以变成超级用户啦!拥有root的权限啦!
用普通用户登录,在
$
提示符下键入
sudo bash
怎样,$变为#
了吧?要回到普通用户模式,请键入exit
注:事实上,这并非真的让你变为
root
,你打入
who am i
,它会告诉你
某某用户
tty1...
,也就是说你的身份还是普通用户,但你的确得到了
root
权限。你几乎可以做任何root可以做的事情!
/etc/sudoers中还可以定义用户别名、主机别名例如:
Host_Alias SERVER=no1
User_Alias ADMINS=abc,bcd
ADMINS ALL=(ALL) NOPASSWD: ALL
这样
ADMINS
不用口令就可以执行一切操作了。
三,使用
指令名称:sudo
使用权限:在 /etc/sudoers 中有出现的使用者
使用方式:
sudo -V
sudo -h
sudo -l
sudo -v
sudo -k
sudo -s
sudo -H
sudo [ -b ] [ -p prompt ] [ -u username/#uid] -s
用法
:sudo command
说明:
以系统管理者的身份执行指令,也就是说,经由sudo 所执行的指令就好像是root 亲自执行
参数:
-V
显示版本编号
-h
会显示版本编号及指令的使用方式说明
-l
显示出自己(执行
sudo
的使用者)的权限
-v
因为sudo 在第一次执行时或是在
N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
-k
将会强迫使用者在下一次执行
sudo 时问密码(不论有没有超过N 分钟)
-b
将要执行的指令放在背景执行
-p prompt
可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称,
%h 会显示主机名称
-u username/#uid
不加此参数,代表要以root 的身份执行指令,而加了此参数,可以以username 的身份执行指令(
#uid 为该username 的使用者号
码)
-s
执行环境变数中的
SHELL
所指定的
shell
,
或是
/etc/passwd
里所指
定的
shell
-H
将环境变数中的
HOME
(家目录)
指定为要变更身份的使用者家目录
(如
不加
-u
参数就是系统管理者
root
)
注:
command
要以系统管理者身份(或以
-u
更改为其他人)执行的指令
四:日志信息
有一个记录档
,
在
/var/log/sudo.log ,
里面记录著谁在什么时候利用
sudo
下了那些指令
!