su sudo 的区别:
su - run a shell with substitute user andgroup IDs
以替代的用户运行shell。(即su之后,在当前shell上的用户身份已转变)
sudo - excute a command as another user.
sudo allows a permitted user to execute acommand as the superuser or another user, as specified by security policy.
以其他用户身份执行命令。sudo依照安全策略中指定,允许授权用户以超级用户或是其他用户身份执行命令。(即sudo,只是临时以其他用户身份执行命令,并不会切换身份)
原理概述
sudo:是系统管理指令,是允许系统管理员让普通用户执行一些或者全部的的root命令的一个工具,如halt,reboot,su等等.这样不仅减少了root用户的登录和管理时间,同样也提高了安全性.sudo不是对shell的一个替代,它是面向每个命令的.
授权工具:
把有限的管理操作授权给某普通用户,并且还能限定其仅能够在某些主机上执行此类的命令;
操作过程还会被记录于日志中,以便于日后审计
它的特性主要有这样几点:
sudo能够限制用户在某台主机上运行某些命令.
sudo提供了丰富的日志,详细记录了每个用户干了什么
sudo使用时间戳文件来执行类似的"检票"系统.当用户调用sudo并且输入它的密码时,用户获得了一张为期5分钟的票
sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的权限和使用的主机.它所存放的位置默认是在/etc/sudoers,属性必须为0400
用法
1.使用sudo的过程:
定义sudo授权,/etc/sudoers
who which_host=(whom) command
2别名:
sudoers别名
仅能使用大写字母
Host_Alias :主机别名
User_Alias 的配置示例:
User_Alias ADMINS = jerry
Runas_Alias:
Cmnd_Alias:命令别名
3.是否需要密码
NOPASSWD:sudo时需要密码
PASSWD:sudo时不需要密码
4、普通用户执行可以执行管理命令
# sudo
-l: 可以sudo模式执行的命令
-k: 强迫用户输入密码
练习
练习:设置wheels组中的用户可以在任何主机上以root用户的身份执行管理类命令,且无须输入密码;
%wheel ALL=(root) NOPASSWD: ALL
[cw@god root]$ sudo passwd lmz
Changing password for user lmz.
New password:
BAD PASSWORD: it is WAY too short
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
练习:授权jerry用户能够以管理员的身份基于sudo执行ifconfig、route、ip、netstat命令;后面两个命令在执行时需要输入密码,而前两个不需要。
jerry ALL=(ALL) /bin/netstat,/sbin/ip,/sbin/route,/sbin/ifconfig
原文:http://limeizhi.blog.51cto.com/2267772/1390905