切换到其余用户
格式:
su - [用户名]
su - user2linux
[root@jinkai01 ~]# su - user2
上一次登陆:一 8月 3 16:14:57 CST 2020pts/0 上
[user2@jinkai01 ~]$ pwd
/home/user2vim
su - -c "touch /tmp/aming.111" username(用户名)
能够不用切换到 其余用户下 就能够指定某个用户建立文件服务器
注意:加-保证完整的切换到user2的家目录下,不加-则切换到user2帐号,可是当前目录倒是以前用户的家目录;ssh
让普通用户使用指定用户的身份去执行一条命令(ls,mv,cat)
让user2使用root的身份去执行一条命令
visudo命令
此命令实际上编辑的是/etc/sudoers文件
在sudo文件中给指定用户赋予其余用户的身份
此命令在语句有错误的条件下退出会提示你错误;
好比user2使用root身份
在文档中找到这一行,并在下面添加相同格式一行;ide
Allow root to run any commands anywhere
root ALL=(ALL) ALL测试
(ALL)授予括号内用户的权限 第三个ALL 指定具体的命令
或者赋予具体的命令(必须使用绝对路径,逗号前加空格)rest
Allow root to run any commands anywhere
root ALL=(ALL) ALL
user2 ALL=(ALL) /usr/bin/ls,/usr/bin/mv,/usr/bin/catcode
保存退出
使用sudo测试文档
[user2@jinkai01 ~]$ ls /root/
ls: 没法打开目录/root/: 权限不够
[user2@jinkai01 ~]$ sudo ls /root/it咱们信任您已经从系统管理员那里了解了平常注意事项。
总结起来无外乎这三点:#1) 尊重别人的隐私。 #2) 输入前要先考虑(后果和风险)。 #3) 权力越大,责任越大。[sudo] user2 的密码:
1.txt 2 aa.txt abc anaconda-ks.cfg a.txt b.txt
咱们会发现可使用ls 查看/root/目录,已经有权限,但第一次须要输入密码
也有方法让使用命令时不输入密码
Allow root to run any commands anywhere
root ALL=(ALL) ALL
user2 ALL=(ALL) NOPASSWD: /usr/bin/ls,/usr/bin/mv,/usr/bin/cat
把须要添加sudo特权的用户能够统一加到 wheel组里,这就不用天天增长一个用户设置一行
Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
只容许使用普通帐户登陆,而普通帐户登陆后,能够不输入密码就能用sudo切换到root帐户。
配置方法,输入以下命令:
#visudo
而后在文件的最后加入以下3行:
User_Alias USER_SU =linuxprobe,user1,user2
Cmnd_Alias SU = /usr/bin/su
USER_SU ALL=(ALL) NOPASSWD: SU
第一行设定了一个user别名,其实这个USER_SU至关因而linuxprobe,user1和user2三个帐户;
第二行设定了一个命令别名,SU至关于/usr/bin/su;
第三行前面介绍过。保存配置文件后,使用linuxprobe,user1和user2这3个帐户登陆Linux。执行命令sudo su -切换到root帐户,获取root帐户的全部权利,以下所示:
[root@jinkai01 ~]# su - user1
上一次登陆:四 8月 6 16:47:55 CST 2020从 192.168.111.1pts/1 上
[user1@jinkai01 ~]$ sudo su -
上一次登陆:四 8月 6 16:54:07 CST 2020从 192.168.111.1pts/0 上
[root@jinkai01 ~]# whoami
root
条件:限制root没法远程登陆,不透露root密码;
思路:限制root没法远程登陆,意味着不少命令没法使用;那么咱们可使用su切换到root须要密码;咱们能够经过sudo中加一条使用命令时不输入密码;
也就是使用su命令切换到root下不须要使用密码;这样限制了root没法远程登陆,可是咱们能够经过sudo 中的visudo文件来实现免密码切换到root用户下;
也就是visudo命令下编辑加入一条
user1 ALL=(ALL) NOPASSWD: /usr/bin/su
Allow root to run any commands anywhere
root ALL=(ALL) ALL
user1 ALL=(ALL) NOPASSWD:/usr/bin/su
测试:在user1用户下使用su - root切换须要密码,而使用sudo su -root后 不用密码就能够切换到root帐号;
[root@jinkai01 ~]# su - user1
上一次登陆:一 8月 3 16:08:34 CST 2020pts/0 上
[user1@jinkai01 ~]$ su - root
密码:
[user1@jinkai01 ~]$ sudo su - root
上一次登陆:四 8月 6 15:10:46 CST 2020从 192.168.111.1pts/1 上
[root@jinkai01 ~]# ls /root/
1.txt 2 aa.txt abc anaconda-ks.cfg a.txt b.txt
编辑文件/etc/ssh/sshd_config
[root@jinkai01 ~]# vim /etc/ssh/sshd_config
将文档中的
#PermitRootLogin yes
改成
PermitRootLogin no
**必定要去除#,#表明是注释的意思;
改完文件后记得重启sshd服务
[root@jinkai01 ~]# systemctl restart sshd
从新登陆测试发现服务器拒绝使用root远程登陆**
使用user1正常登陆成功,而后使用sudo su - root命令成功切换到root用户下
Last login: Thu Aug 6 16:28:45 2020[user1@jinkai01 ~]$ sudo su - root上一次登陆:四 8月 6 16:29:04 CST 2020pts/1 上最后一次失败的登陆:四 8月 6 16:32:23 CST 2020从 192.168.111.1ssh:notty 上最有一次成功登陆后有 1 次失败的登陆尝试。[root@jinkai01 ~]#