3.7su命令
[root@MOMOCO-02 ~]# whoami
root
【查看当前的用户】
[root@MOMOCO-02 ~]# su - user01
上一次登录:三 12月 27 15:11:18 CST pts/0 上
【切换用户的命令】
[user01@MOMOCO-02 ~]$ whoami
user01
[user01@MOMOCO-02 ~]$ id
uid=1001(user01) gid=1001(user01) 组=1001(user01) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
【产看当前的用户id号,也可以看当当前的用户是谁。】
[user01@MOMOCO-02 ~]$ 登出【ctrl+d】
[root@MOMOCO-02 ~]# pwd
/root
[root@MOMOCO-02 ~]# su user01
【不能彻底的切换到user用户里】
[user01@MOMOCO-02 root]$ pwd
/root
【你不是用-他的家目录不能切换。】
[user01@MOMOCO-02 ~]$ ls -la
总用量 16
drwx------. 2 user01 user01 83 12月 27 15:18 .
drwxr-xr-x. 5 root root 50 12月 27 15:04 ..
-rw-------. 1 user01 user01 17 12月 27 15:18 .bash_history
-rw-r--r--. 1 user01 user01 18 8月 3 05:11 .bash_logout
-rw-r--r--. 1 user01 user01 193 8月 3 05:11 .bash_profile
-rw-r--r--. 1 user01 user01 231 8月 3 05:11 .bashrc
[root@MOMOCO-02 ~]# su - -c "touch /tmp/1.2.txt" gyblinux
【-c选项是指定某个用户运行某个命令,这个是指定gyblinux用户在/tmp/目录下创建一个1.1.txt文件】
[root@MOMOCO-02 ~]# ls -lt /tmp/ |head -n2
总用量 4
-rw-rw-r--. 1 gyblinux user02 0 12月 27 15:38 1.2.txt
【文件创建成功,他的所属组是user02,如下可以看到gyblinux的所属组】
[root@MOMOCO-02 ~]# id gyblinux
uid=1000(gyblinux) gid=1002(user02) 组=1002(user02)
[root@MOMOCO-02 ~]# su - gyblinux
上一次登录:三 12月 27 15:51:57 CST pts/0 上
[gyblinux@MOMOCO-02 ~]$ su - user01
密码:
su: 鉴定故障
【我们使用普通用户登录普通用户,这个错我使我们锁定了user01的密码】
[gyblinux@MOMOCO-02 ~]$ su - user01
密码:
上一次登录:三 12月 27 15:52:10 CST pts/0 上
最后一次失败的登录:三 12月 27 15:57:11 CST pts/0 上
最有一次成功登录后有 2 次失败的登录尝试。
【如果用户密码没有被锁定是可以登录的】
[root@MOMOCO-02 ~]# su - user01
上一次登录:三 12月 27 16:05:36 CST pts/0 上
[user01@MOMOCO-02 ~]$ su - user3
密码:
su: 警告:无法更改到 /home/user3 目录: 没有那个文件或目录
-bash-4.2$
【我们发现这个前缀和前面的不一样了,这是因为这个用户没有家目录的原因。我们看下面的操作就可以恢复了。】
[root@MOMOCO-02 ~]# id user3
uid=1003(user3) gid=1003(user3) 组=1003(user3)
【查看user3的gid】
[root@MOMOCO-02 ~]# mkdir /home/user3
【在家目录中创建user3】
[root@MOMOCO-02 ~]# chown user3:user3 /home/user3
【更改user3目录的所属主和所属组】
[root@MOMOCO-02 ~]# su - user3
上一次登录:三 12月 27 16:06:24 CST pts/0 上
-bash-4.2$ ls -la
总用量 0
drwxr-xr-x. 2 user3 user3 6 12月 27 16:13 .
drwxr-xr-x. 6 root root 63 12月 27 16:13 ..
-bash-4.2$ 登出
[root@MOMOCO-02 ~]# su - gyblinux
上一次登录:三 12月 27 15:58:51 CST pts/0 上
[gyblinux@MOMOCO-02 ~]$ ls -la
总用量 16
drwx------. 2 gyblinux user02 98 12月 27 15:45 .
drwxr-xr-x. 6 root root 63 12月 27 16:13 ..
-rw-r--r--. 1 gyblinux user02 0 12月 27 15:45 1.2.txt
-rw-------. 1 gyblinux user02 169 12月 27 16:02 .bash_history
-rw-r--r--. 1 gyblinux user02 18 8月 3 05:11 .bash_logout
-rw-r--r--. 1 gyblinux user02 193 8月 3 05:11 .bash_profile
-rw-r--r--. 1 gyblinux user02 231 8月 3 05:11 .bashrc
【我们创建了家目录在登录还是不行,因为家目录里面没有3个.bash*的文件】
[gyblinux@MOMOCO-02 ~]$ 登出
[root@MOMOCO-02 ~]# ls -la /etc/skel/
总用量 24
drwxr-xr-x. 2 root root 62 12月 5 22:25 .
drwxr-xr-x. 74 root root 8192 12月 27 16:06 ..
-rw-r--r--. 1 root root 18 8月 3 05:11 .bash_logout
-rw-r--r--. 1 root root 193 8月 3 05:11 .bash_profile
-rw-r--r--. 1 root root 231 8月 3 05:11 .bashrc
【系统自带的3个.bash*文件】
[root@MOMOCO-02 ~]# cp /etc/skel/.b* /home/user3
[root@MOMOCO-02 ~]# chown -R user3:user3 /home/user3
【更改/home/user3/目录及目录的所属主和所属组】
【我们把这三个文件拷贝到家目录的user3目录里再次登录user3用户】
[root@MOMOCO-02 ~]# su - user3
上一次登录:三 12月 27 16:14:34 CST pts/0 上
[user3@MOMOCO-02 ~]$ ls -la
总用量 16
drwxr-xr-x. 2 user3 user3 83 12月 27 16:17 .
drwxr-xr-x. 6 root root 63 12月 27 16:13 ..
-rw-------. 1 user3 user3 47 12月 27 16:26 .bash_history
-rw-r--r--. 1 user3 user3 18 12月 27 16:17 .bash_logout
-rw-r--r--. 1 user3 user3 193 12月 27 16:17 .bash_profile
-rw-r--r--. 1 user3 user3 231 12月 27 16:17 .bashrc
【这次就可以像之前gyblinux用户的前缀了】
[gyblinux@MOMOCO-02 ~]$ su -
密码:
上一次登录:三 12月 27 16:35:00 CST pts/0 上
最后一次失败的登录:三 12月 27 16:35:53 CST pts/0 上
最有一次成功登录后有 1 次失败的登录尝试。
【我们也可以从普通用户登录到root用户但是首先你要知道root用户的密码】
3.8sudo命令
这个命令是让普通用户临时运行root的命令,下面我们来看sudo的配置文件。
[root@MOMOCO-02 ~]# visudo
【我们运行visudo命令进入sudo的配置文件,其实/etc/sudoers.tmp才真正是sudo的配置文件。但是我们用绝对路径配置文件的时候如果你的语法有错误他不会提示你,而且这个文件比较重要。而我们用sudo来写如果有错误他会提示我们】
[root@MOMOCO-02 ~]# visudo
【我们找到这一行模仿root编辑一下】
>>> /etc/sudoers: 语法错误 near line 93 <<<
现在做什么?
选项有:
重新编辑 sudoers 文件(e)
退出,不保存对 sudoers 文件的更改(x)
退出并将更改保存到 sudoers 文件(危险!)(Q)
现在做什么?e
【可以看到我们错误的提示】
【正确的编辑是使用绝对路径在路径的后面加上逗号在加个空格】这句语言的意思就是让gyblinux用户拥有root用的身份去执行这几条命令
【上面说在93行有错误我们怎么找多少行那?你进入编辑的文件然后:set nu 他就会显示行号】
[root@MOMOCO-02 ~]# su - gyblinux
上一次登录:三 12月 27 19:15:16 CST pts/0 上
[gyblinux@MOMOCO-02 ~]$ ls /root/
ls: 无法打开目录/root/: 权限不够
【在普通目录下我们是不能ls /root/ 使用root用户的,但是我们使用下面的sudo就可以。】
[gyblinux@MOMOCO-02 ~]$ sudo /usr/bin/ls /root/
我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:
#1) 尊重别人的隐私。
#2) 输入前要先考虑(后果和风险)。
#3) 权力越大,责任越大。
[sudo] gyblinux 的密码:
123 2.txt 3 3.txt 3.txt~ anaconda-ks.cfg
【这里他让我们输入gyblinux的用户密码,第一次使用他会让我们输入密码,第二次自后就不让我们输入密码了。】
[gyblinux@MOMOCO-02 ~]$ sudo /usr/bin/ls /root/
123 2.txt 3 3.txt 3.txt~ anaconda-ks.cfg
【这样我们就可以使用ls /root/ 使用root用户了】
[gyblinux@MOMOCO-02 ~]$ sudo /usr/bin/cat /root/4.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
注意:我们这样设置就会避免系统遭到破坏,我们就给普通用户要用的root命令。也防止root密码的泄露。
【我不想输入自己的密码怎么办那就加上NOPASSWD: 就行了。快捷方式光标定位到要复制的那一行然后按yy再按p就会在下面复制本行。】
[root@MOMOCO-02 ~]# visudo
[root@MOMOCO-02 ~]# su - user01
上一次登录:三 12月 27 19:43:42 CST pts/0 上
[user01@MOMOCO-02 ~]$ sudo /usr/bin/ls /root/
123 2.txt 3 3.txt~ 4.txt anaconda-ks.cfg
【一组为单位给我要用的命令做个组的别名,把你要用的命令加入到这里面去。然后在下面的时候就直接使用GYB_CMD就可以了。】
[root@MOMOCO-02 ~]# visudo
[root@MOMOCO-02 ~]# su - gyblinux
上一次登录:三 12月 27 19:54:21 CST pts/0 上
[gyblinux@MOMOCO-02 ~]$ sudo ls /root/
123 2.txt 3 3.txt~ 4.txt anaconda-ks.cfg
3.9限制root远程登录
为了安全起见我们一般不会让普通用户知道密码,不会让root远程。
[root@MOMOCO-02 ~]# visudo
【我们可以登录普通用户,然后在普通用户里切换到root用户。】
【设置一个用户组】
【允许用户组GYBADMINS运行su命令。】
[root@MOMOCO-02 ~]# su - gyblinux
上一次登录:三 12月 27 20:00:48 CST pts/0 上
【进入普通用户】
[gyblinux@MOMOCO-02 ~]$ su -
密码:
【我们ctrl+c】
[gyblinux@MOMOCO-02 ~]$ sudo su -
上一次登录:四 12月 28 08:13:10 CST 从 192.168.119.1pts/1 上
[root@MOMOCO-02 ~]# 登出
[gyblinux@MOMOCO-02 ~]$ 登出
【我们用sudo进入root用户,可以看到不需要密码。但是这个还是不够安全,因为进入root用户可以自己修改root的密码,这样还是不安全。所以这个还不是我们想要的。】
【关闭root远程登录】
[root@MOMOCO-02 ~]# vi /etc/ssh/sshd_config
【进入这个配置文件,按下面的方法配置】
[root@MOMOCO-02 ~]# systemctl restart sshd.service
【重启sshd的配置服务】
我们再次链接momoco02
【当我们输入对的密码时也是无法登录root的】
那我们就用普通用户登录,登录方法如下:
【进入普通用户我们在进入root用户】
[gyblinux@MOMOCO-02 ~]$ su -
密码:
【我们直接su - 他会让我们输入密码。我们不知道ctrl+c取消】
[gyblinux@MOMOCO-02 ~]$ sudo su -
【我们可以使用sudo命令就如root用户下】
上一次登录:四 12月 28 10:01:55 CST 从 192.168.119.1pts/0 上
最后一次失败的登录:四 12月 28 10:03:23 CST 从 192.168.119.1ssh:notty 上
最有一次成功登录后有 1 次失败的登录尝试。
为了以后方便做实验我们还是允许root用户远程登录,我们把之前的配置vi /etc/ssh/sshd_config文件改回来就行了。
阿铭linux