su命令
su username : 不带-未完全切换用户环境 [root@yolks1 ~]# su yolks
[yolks@yolks1 root]$ ls
234 2.txt 3.txt anaconda-ks.cfg.1 stick_bit test_windoiws_upload_file.txt
[yolks@yolks1 root]$ whoami
yolks
[yolks@yolks1 root]$ id
uid=1000(yolks) gid=1000(yolks) 组=1000(yolks)
[yolks@yolks1 root]$ pwd
/root
- username : 已经完全切换到用户环境下,更推荐第二种方式切换 [yolks@yolks1 root]$ su - yolks
密码:
上一次登录:一 6月 11 21:34:55 CST 2018pts/0 上
[yolks@yolks1 ~]$ pwd
/home/yolks
[yolks@yolks1 ~]$ id
uid=1000(yolks) gid=1000(yolks) 组=1000(yolks)
[yolks@yolks1 ~]$ whoami
yolks
su - -c 命令 username (指定某用户身份执行命令) [root@yolks1 ~]# su - -c "touch /tmp/test_yolks_create.file" yolks
[root@yolks1 ~]# ls -lt /tmp/test_yolks_create.file
-rw-rw-r-- 1 yolks yolks 0 6月 11 21:43 /tmp/test_yolks_create.file
[root@yolks1 ~]# id yolks
uid=1000(yolks) gid=1000(yolks) 组=1000(yolks)
切换到一个不存在家目录的账户后,会警告没有那个目录
[root@yolks1 ~]# su - user8
su: 警告:无法更改到 /home/user8 目录: 没有那个文件或目录
-bash-4.2$
解决方法
1.创建家目录
[root@yolks1 ~]# mkdir /home/user8
[root@yolks1 ~]# ls /home/
user1 user2 user3 user4_creat_by_root user8 yolks
2.修改权限
[root@yolks1 ~]# chown user8:user8 /home/user8
3.从/etc/skel/(模板目录)下复制到user8家目录
[root@yolks1 ~]# ls -la /etc/skel/
总用量 24
drwxr-xr-x. 2 root root 62 5月 25 05:28 .
drwxr-xr-x. 74 root root 8192 6月 11 21:59 ..
-rw-r--r--. 1 root root 18 8月 3 2017 .bash_logout
-rw-r--r--. 1 root root 193 8月 3 2017 .bash_profile
-rw-r--r--. 1 root root 231 8月 3 2017 .bashrc
[root@yolks1 ~]# cp /etc/skel/.bash_logout /home/user8/;cp /etc/skel/.bash_profile /home/user8/;cp /etc/skel/.bashrc /home/user8/; # cp /etc/skel/.bash* /home/user8/
[root@yolks1 ~]# ls -la /home/user8/
总用量 12
drwxr-xr-x 2 user8 user8 62 6月 11 22:07 .
drwxr-xr-x. 8 root root 98 6月 11 22:03 ..
-rw-r--r-- 1 root root 18 6月 11 22:07 .bash_logout
-rw-r--r-- 1 root root 193 6月 11 22:07 .bash_profile
-rw-r--r-- 1 root root 231 6月 11 22:07 .bashrc
4.修改家目录及子文件的属主、属组权限
[root@yolks1 ~]# chown -R user8:user8 !$
chown -R user8:user8 /home/user8/
5.再次切换查看效果
[root@yolks1 ~]# su - user8
上一次登录:一 6月 11 22:00:07 CST 2018pts/0 上
[user8@yolks1 ~]$ ls
[user8@yolks1 ~]$ pwd
/home/user8
[user8@yolks1 ~]$ whoami
user8
sudo命令:普通用户临时拥有root身份去执行命令
1.visudo 配置文件
visudo
2.添加yolks使用root权限执行ls、cat、mv命令的配置
3.提示语法错误
[root@yolks1 ~]# visudo
>>> /etc/sudoers: 语法错误 near line 93 <<<
现在做什么?
选项有:
重新编辑 sudoers 文件(e)
退出,不保存对 sudoers 文件的更改(x)
退出并将更改保存到 sudoers 文件(危险!)(Q)
4.按e重新编辑
5.正常情况下普通用户操作root目录提示权限不足
[yolks@yolks1 ~]$ ls /root/
ls: 无法打开目录/root/: 权限不够
6.sudo使用
[yolks@yolks1 ~]$ sudo /usr/bin/ls /root/
我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:
#1) 尊重别人的隐私。
#2) 输入前要先考虑(后果和风险)。
#3) 权力越大,责任越大。
[sudo] yolks 的密码:
234 2.txt 3.txt anaconda-ks.cfg.1 stick_bit test_windoiws_upload_file.txt
7.修改配置使其不需要再次输入密码确认
[root@yolks1 ~]# su - user8
上一次登录:一 6月 11 22:12:21 CST 2018pts/0 上
[user8@yolks1 ~]$ ls /root/
ls: 无法打开目录/root/: 权限不够
[user8@yolks1 ~]$ sudo ls !$
sudo ls /root/
234 2.txt 3.txt anaconda-ks.cfg.1 stick_bit test_windoiws_upload_file.tx
限制Root远程登录
1.visudo添加User_Alias
2.visudo添加规则 :User_Alias的用户使用 /usr/bin/su不需要密码
3.然后就可以神奇的免密登录root账户
[root@yolks1 ~]# su - yolks
上一次登录:一 6月 11 22:38:30 CST 2018pts/0 上
[yolks@yolks1 ~]$ sudo su - root
上一次登录:二 6月 12 22:25:23 CST 2018从 192.168.248.1pts/0 上
[root@yolks1 ~]# whoami
root
针对以上情况需要限制root远程登录
编辑/etc/ssh/sshd_config去掉此处注释,PermitRootLogin no 修改yes为no表示不允许远程登录
重启sshd服务 systemctl restart sshd.service
提示服务器拒绝了用户密钥