【9.4】su、sudo、磁盘管理
3.7 su命令
-
SU - 用户名 切换用户(加 - 为了彻底切换用户,包括自己的配置,环境变量)
-
id 用户名 查看用户的uid,gid和组、扩展组等信息
-
whoami 查看当前用户名
[root@arslinux-01 ~]# su - arslinux
上一次登录:四 3月 21 20:04:00 CST 2019pts/0 上
[arslinux@arslinux-01 ~]$ pwd
/home/arslinux
[arslinux@arslinux-01 ~]$ whoami
arslinux
- su - -c “命令” 用户名 不登录其他用户的情况下以指定用户身份执行命令
[arslinux@arslinux-01 ~]$ su - -c "touch /tmp/arslinux.111" arslinux
密码:
[arslinux@arslinux-01 ~]$ ll -t /tmp/ |head -3
总用量 12
-rw-rw-r--. 1 arslinux arslinux 0 3月 21 20:16 arslinux.111
drwx------. 2 root root 6 3月 21 19:58 vmware-root_6250-725846432
[arslinux@arslinux-01 ~]$ id arslinux
uid=1000(arslinux) gid=1000(arslinux) 组=1000(arslinux),1005(grp2),1007(user5)
- 如果普通用户没有家目录,前缀显示为-bash-4.2$
[arslinux@arslinux-01 ~]$ su - arslinux
密码:
上一次登录:四 3月 21 20:16:38 CST 2019pts/0 上
[arslinux@arslinux-01 ~]$ su - user5
密码:
su: 鉴定故障
[arslinux@arslinux-01 ~]$ su
密码:
[root@arslinux-01 arslinux]# passwd user5
更改用户 user5 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@arslinux-01 arslinux]# su - arslinux
上一次登录:四 3月 21 20:22:49 CST 2019pts/0 上
[arslinux@arslinux-01 ~]$ su - user5
密码:
最后一次失败的登录:四 3月 21 20:22:59 CST 2019pts/0 上
最有一次成功登录后有 1 次失败的登录尝试。
su: 警告:无法更改到 /home/user5 目录: 没有那个文件或目录
-bash-4.2$
-bash-4.2$
-bash-4.2$
-bash-4.2$
**解决方法:**给普通用户增加家目录
[root@arslinux-01 ~]# mkdir /home/user5
[root@arslinux-01 ~]# chown user5:user5 /home/user5/
[root@arslinux-01 ~]# cp /etc/skel/.bash* /home/user5/
[root@arslinux-01 ~]# chown -R user5:user5 !$
chown -R user5:user5 /home/user5/
[root@arslinux-01 ~]# su - user5
上一次登录:四 3月 21 20:24:06 CST 2019pts/0 上
[user5@arslinux-01 ~]$ pwd
/home/user5
- 普通用户su 到 root 用户只要知道 root 密码就可以
[user5@arslinux-01 ~]$ pwd
/home/user5
[user5@arslinux-01 ~]$ su -
密码:
上一次登录:四 3月 21 20:23:33 CST 2019pts/0 上
3.8 sudo命令
-
sudo 让普通用户临时以指定用户的身份去执行一条命令(通常都是给普通用户授权 root 用户身份)
visudo 更改配置文件sudoer
visudo 可以检测语法错误,而vi则不能 -
在配置文件中更改如下后保存退出:
##Allow root to run any commands anywhere
root ALL=(ALL) ALL
user1 ALL=(ALL) /usr/bin/ls, /usr/bin/cat, /usr/bin/mv
-
命令要写绝对路径,命令之间要逗号加空格分开
-
root切换到普通用户下,无法使用命令,但可以sudo 使用命令,说明visudoer中的配置起了作用
[root@arslinux-01 ~]# su - arslinux
上一次登录:四 3月 21 22:03:32 CST 2019pts/0 上
[arslinux@arslinux-01 ~]$ ls /root/
ls: 无法打开目录/root/: 权限不够
[arslinux@arslinux-01 ~]$ sudo ls /root/
我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:
#1) 尊重别人的隐私。
#2) 输入前要先考虑(后果和风险)。
#3) 权力越大,责任越大。
[sudo] arslinux 的密码:
111 123 1_hard.txt 1.txt 2222.txt.bak 234 anaconda-ks.cfg
11111.txt 123.txt 1_soft.txt 1.txz~ 222.txt 2.txt gakki.jpg
-
通过sudo给普通用户授权部分命令,而不是给普通用户密码,这样更安全
-
NOPASSWD 让普通用户不用输入密码就可以执行命令
[root@arslinux-01 ~]# visudo
[root@arslinux-01 ~]# su - user5
上一次登录:四 3月 21 20:28:53 CST 2019pts/0 上
[user5@arslinux-01 ~]$ ls /root/
ls: 无法打开目录/root/: 权限不够
[user5@arslinux-01 ~]$ sudo ls /root/
111 123 1_hard.txt 1.txt 2222.txt.bak 234 anaconda-ks.cfg
11111.txt 123.txt 1_soft.txt 1.txz~ 222.txt 2.txt gakki.jpg
- 也可以在sudoer里,给命令做alias别名:
原先命令位置改为别名 ARSLINUX_CMD
[root@arslinux-01 ~]# visudo
[root@arslinux-01 ~]# su - arslinux
上一次登录:四 3月 21 22:05:11 CST 2019pts/0 上
[arslinux@arslinux-01 ~]$ ls /root/
ls: 无法打开目录/root/: 权限不够
[arslinux@arslinux-01 ~]$ sudo ls /root/
[sudo] arslinux 的密码:
111 123 1_hard.txt 1.txt 2222.txt.bak 234 anaconda-ks.cf