su命令 sudo命令 限制root远程登录

一、 su命令
适合情景:多用户之间的切换,登入到相应用户环境,执行命令。类似于 windows 的切换用户
扩展命令:id 、 whoami 查看当前用户名
语法 : su [-] [操作命令] username
快捷键:ctrl-d 退出当前用户
常用操作示范:
1. 加“-”的意思是,切换用户的同时切换环境变量,不跟 工作目录停留在当前,切换不彻底
#su - aming 切换到aming用户,此时提示符由”#”变成”$”

2.在普通用户下输入 su - 则直接切换到root用户

su -

3.加”-c”以指定用户的身份执行相关命令操作

su - -c “mkdir /tmp/121212” aming 以aming用户身份创建一个121212目录

4.特殊情况
当使用 su切换到一个没有家目录的用户,如 user5
[root@centos701 ~]# su - user5
su: 警告:无法更改到 /home/user5 目录: 没有那个文件或目录
-bash-4.2$
原因:在家目录下没有系统变量配置文件
解决办法:建立家目录,并拷贝系统配置文件到家目录下

步骤:
1.查看 user5的属组信息
[root@centos701 ~]# id user5
uid=1007(user5) gid=1007(user5) 组=1007(user5)

2.创建 user5的家目录,并修改目录的属主属组,并验证
[root@centos701 ~]# mkdir /home/user5 ##创建
[root@centos701 ~]# chown user5:user5 !$ ##修改属主属组
chown user5:user5 /home/user5
[root@centos701 ~]# ls -ld /home/user5
drwxr-xr-x. 2 user5 user5 6 11月 1 23:02 /home/user5 ##验证权限

3.拷贝/etc/skel 系统模板目录下的.bash开头的3个文件到 user5家目录下
[root@centos701 ~]# cp /etc/skel/.bash* /home/user5/
[root@centos701 ~]# su - user5
上一次登录:三 11月 1 22:54:13 CST 2017pts/0 上
[user5@centos701 ~]$

二、sudo命令
适合情景:让普通用户临时以root身份执行特殊命令,增强安全性
sudo -列出当前用户可运行的命令

[root@centos701 ~]# visudo ##修改sudo配置文件,切勿使用 vi 编辑/etc/sudoers.tmp

可在此配置文件中对主机、命令、用户等对象进行组别名管理,方便策略引用

注意:定义命令首字母要大写,定义别名则全部要大写,具体可看文档中的注释
如对文件查看类命令进行别名管理,在授权可用命令时输入”FILES”,即可代表该定义的命令
Cmnd_Alias FILES=/usr/bin/ls,/usr/bin/mv,/usr/bin/cat,/usr/bin/tail

user MACHINE=COMMANDS

#

The COMMANDS section may have other options added to it.

#

Allow root to run any commands anywhere

root ALL=(ALL) ALL
谁 以谁的身份 可用哪些命令
aming ALL=(ALL) NOPASSWD: /usr/bin/ls,/usr/bin/mv,/usr/bin/cat
user5 ALL=(ALL) FILES

将欲授权用户及其可以执行的命令添加进去,NOPASSWD的意思是执行此命令时不需要验证用户密码。

三、限制root远程登录
场景:为了安全需要禁止 root 用户远程登录。
方法:通过修改 /etc/ssh/sshd_config 来禁止 root 用户远程登录。

1.[root@centos701 ~]# vi /etc/ssh/sshd_config
2.PermitRootLogin no ##搜索RootLogin,将此选项的 yes 改成 no
3.保存退出
这样 root 用户就无法使用 ssh 远程登录服务器了

如果确实需要通过远程使用 root 用户,可以利用对 visudo 对普通用户设置运行su权限 ,
来完成普通用户远程登录后使用 “sudo su -“切换到 root 用户。
1.首先定义普通用户别名
[root@centos701 ~]# visudo (用”/“搜索 User 定位到相关案例位置 )

User_Alias ADMINS = jsmith, mikem

User_Alias AMINGS=aming,user5,user6 (按照案例设置用户别名)
2.给用户授权使用 su命令

Allowroot to run any commands anywhere (用”/“搜索 anywhere 定位到相关案例位置 )

AMINGS ALL=(ALL) /usr/bin/su (按照案例设置别名用户使用的命令)
3.保存退出
此后,就可以远程使用授权的普通用户登录,然后执行sudo su - ,输入 root 密码完成切换

猜你喜欢

转载自blog.csdn.net/u012922706/article/details/78431878