sudo命令
su命令
switch user的缩写, 意为切换至指定用户执行命令
常用选项
-c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份;
-f或——fast:适用于csh与tsch,使shell不用去读取启动文件;
-l或——login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量;
-m,-p或--preserve-environment:变更身份时,不要变更环境变量;
-s或--shell=:指定要执行的shell; --help:显示帮助; --version;显示版本信息。
示例
1.切换至root用户,创建user1用户
[centos@localhost root]$useradd user1 # 使用centos用户创建用户失败 bash: /usr/sbin/useradd: Permission denied [centos@localhost root]$su -c 'useradd user1' # 切换至root用户下,创建用户 Password: # 输入root用户的密码 [centos@localhost root]$tail -2 /etc/passwd # 确认是否创建成功 centos:x:1001:1001::/home/centos:/bin/bash user1:x:1002:1002::/home/user1:/bin/bash
2.切换至root用户
[centos@localhost root]$su - # 切换至root用户, - 表示改变工作目录,且重新载入环境变量 Password: Last login: Mon Jun 12 18:55:41 CST 2017 on pts/0 Last failed login: Mon Jun 12 19:02:04 CST 2017 on pts/0 There was 1 failed login attempt since the last successful login. [root@localhost ~]#su centos # 切换至centos用户
sudo命令
execute a command as another user, 以其他用户身份临时性地执行命令。可以让获得授权的用户以另一个身份(一般为root用户,或者属组为root)执行命令。
授权文件/etc/sudoers,只能使用visudo命令,编写该文件
常用选项
-b 以后台进程的方式运行命令
-g group 以属组为group的身份运行程序
-h 查看帮助想你想
-k 让认证文件失效
-l 显示当前用户能执行的sudo命令
-u user 以user的身份运行命令
授权文件的配置
1.别名配置
A.主机别名
Host_Alias FILESERVERS = fs1, fs2
B.用户别名
User_Alias ADMINS = jsmith, mikem
C.命令别名
Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig
注意:命令必须为二进制文件全路径
2.给用户授权
A.向centos用户授权,可以进行所有操作
centos ALL=(ALL) ALL
B.wheel组中的用户可以执行所有操作,且不需要输入密码
%wheel ALL=(ALL) NOPASSWD: ALL
C.允许centos用户,以无密码地方式执行SOFTWARE中的命令
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum
centos ALL=(ALL) NOPASSWD: SOFTWARE