码迷,mamicode.com
首页 > 其他好文 > 详细

3周第3次课 su命令 sudo命令 限制root远程登录

时间:2017-11-02 11:34:19      阅读:186      评论:0      收藏:0      [点我收藏+]

标签: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 密码完成切换






3周第3次课 su命令 sudo命令 限制root远程登录

标签:su sudo 限制root远程登录

原文地址:http://badswolf.blog.51cto.com/6725328/1978274

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!