su [user]
以no-login shell的方式切换用户,保留原用户的path,pwd等信息
su - [user]
完全身份转换
以上两个命令不接user的时候都是转换成root,需要在切换的时候输入root的密码
如果是在多用户管理的情况下,我想让用户student具备执行root命令的权限,但是又不需要知道root密码,可以吗?
使用sudo命令
sudo [user] 指令
默认情况下只有root用户可以使用sudo命令,其他用户需要通过visudo命令编辑/etc/sudoers实现
主要的几个参数
root ALL=(ALL) ALL分别为可以只用sudo的用户,远端机器,切换用户,可执行命令(需要绝对路径)
比如允许student用户执行所有用户的所有命令,可以加入
student ALL=(ALL) ALL
比如允许组student来执行所有用户的所有命令,可以加入
%student ALL=(ALL) ALL
允许一堆特定的用户来执行root用户的某个命令,可以加入
#visudo
User_Alias ADMPW = proc1,proc2,myuser1,student
Cmnd_Alias ADMPWCOM = !/usr/bin/passwd,/usr/bin/passwd[A-Za-z]*,!/usr/bin/passwd root
ADMPW ALL=(root) ADMPWCOM
上面的命令创建了一个别名,来允许proc1,proc2,myuser1,student四个用户可以执行passwd user的命令,但是不能为
root用户修改密码,保证了安全.!代表不允许执行
设置后,在student用户下,执行
[student@LL ~]$ passwd visitor
passwd: Only root can specify a user name.
[student@LL ~]$ sudo passwd visitor
Password: 输入student用户密码
Changing password for user visitor.
New UNIX password: 输入visitor用户密码
BAD PASSWORD: it is too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
在5分钟内再次执行sudo,系统会人性化的不需要你再次输入student的密码验证
特殊应用:sudo结合su,可以让用户在输入自己的密码后完全转化为root用户
#visudo
User_Alias ADMPW = student
ADMPW ALL=(root) /bin/su -
在student用户下敲入
[student@LL ~]$ sudo su -
passwd:输入student的密码
[root@LL ~]# pwd
/root
你看,已经彻底切换成root了
阅读(1115) | 评论(0) | 转发(0) |