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

su、sudo,限制root远程登录

时间:2018-02-07 22:49:47      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:ali   恢复   隐私   文件   用法   cst   etc   alias   参数   

su:切换用户的命令,在root用户下,可以用这个命令来切换。
[root@localhost ~]# su - aming
上一次登录:日 1月 21 20:36:34 CST 2018pts/0 上
[aming@localhost ~]$
我们可以看到,用户已经从root转换到了aming。我们也可以输入命令id来查看它是谁
[aming@localhost ~]$ id
uid=1001(aming) gid=1001(aming) 组=1001(aming) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
还有就是我们在su后面加了一个“-”,它是为了彻底的切换用户,包括它自己的设置,环境变量等等,如果不加“-”,那你会看见它还在/root下。
[root@localhost ~]# su aming
[aming@localhost root]$ pwd
/root
而加了“-”后你会发现,它已经切换到用户自己的家目录下。
[root@localhost ~]# su - aming
上一次登录:日 1月 21 20:36:34 CST 2018pts/0 上
[aming@localhost ~]$ pwd
/home/aming
这样他就会加载自己家目录的配置文件。所以我们以后切换用户的时候一定要加“-”,这样才会切换的彻底。
我们也可以用指定的用户去执行命令
[root@localhost ~]# su - -c "touch /tmp/aming.111" aming
[root@localhost ~]# ls -lt /tmp/ |head -n3
总用量 0
-rw-rw-r--. 1 aming aming 0 1月 21 20:49 aming.111
drwx------. 3 root root 17 1月 21 20:12 systemd-private-4bdc2a92b8c349a6b32a5ecb8338ff3a-vmtoolsd.service-1eX2h5
然后我们可以看到用aming用户执行的一个命令。

我么也可以从普通用户切换到普通用户,只要输入要切换用户的密码就行。
[aming@localhost ~]$ su - user5
[user@localhost ~]$ su - user5
密码:
上一次登录:日 1月 21 21:00:19 CST 2018pts/0 上
su: 警告:无法更改到 /home/user5 目录: 没有那个文件或目录
-bash-4.2$
我们可以看到,切换到user5时和其他的用户不一样,这是因为user5的家目录不存在,所以他也没有用户的配置文件可加载,所以才显示成这个样子,那么怎样才能显示正常呢?我们只要给user5添加一个家目录就可以了。
首先我们先用ID命令查看一下user5
-bash-4.2$ id user5
uid=1002(user5) gid=1002(user5) 组=1002(user5)
首先,我们先切换到root用户下,创建user5的家目录
[root@localhost ~]# mkdir /home/user5
然后改变他的所属组和所属主
[root@localhost ~]# chown user5:user5 /home/user5
但是这时候切换还是不行,因为这里面缺少里面的配置文件
[root@localhost ~]# su - user5
上一次登录:日 1月 21 21:33:02 CST 2018pts/0 上
-bash-4.2$
我们只能去其他地方去找配置文件,然后拷贝到user5的家目录下面去,系统有一个模板目录/etc/skel
[root@localhost ~]# ls -la /etc/skel/
总用量 24
drwxr-xr-x. 2 root root 62 12月 14 21:57 .
drwxr-xr-x. 74 root root 8192 1月 21 21:00 ..
-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
然后我们拷贝到user5家目录下
[root@localhost ~]# cp /etc/skel/.bash* /home/user5
然后从新改变他的所属组和所属主
[root@localhost ~]# chown -R user5:user5 !$ (这时里面要加-R,因为里面有了文件,!$这是重复上一个命令最后一条的参数)
然后我们再登录就恢复正常了
[root@localhost ~]# su - user5
上一次登录:日 1月 21 21:35:16 CST 2018pts/0 上
[user5@localhost ~]$

root用户可以su到普通用户,那普通用户可以su到root用户下吗?当然可以,只要你知道root的密码就行。
[user@localhost ~]$ su -
密码:
上一次登录:日 1月 21 21:53:48 CST 2018pts/0 上
[root@localhost ~]#

sudo命令,它可以让普通用户用指定的用户权限去执行一条命令,多以root用户居多。
我们先打开配置文件
[root@localhost ~]# visudo(在这里我们不要用vi去打开这个配置文件,因为这是系统很重要的文件,一旦我们用的语法错误,vi是检测不出来的,所以我们要用visudo来打开它)
然后我们向下,找到这一行,这是这个配置文件最核心的一句配置,它的意思是允许root用户在任何地方使用命令,然后我们模仿一下,让aming用户可一个在任何地方执行命令

Allow root to run any commands anywhere

root ALL=(ALL) ALL
aming ALL=(ALL) ls,mv,cat
然后输入:wq保存退出
但是系统提示我们有错误

>> /etc/sudoers: 语法错误 near line 93 <<<
现在做什么?
选项有:
重新编辑 sudoers 文件(e)
退出,不保存对 sudoers 文件的更改(x)
退出并将更改保存到 sudoers 文件(危险!)(Q)
在visudo中有一些使用的范例,可供我们查看。
45 # Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall
我们可以看到,我们要执行的命令必须要输入它的绝对路径,只写一个路径它不知道你的命令在哪里
aming ALL=(ALL) /usr/bin/ls, /usr/bin/mv, /usr/bin/cat
然后我们保存退出,这样就没问题了
然后我们去aming用户下去ls /root/
[aming@localhost ~]$ ls /root/
ls: 无法打开目录/root/: 权限不够
这时我们就要用sudu这个命令去完成
[aming@localhost ~]$ sudo /usr/bin/ls /root/

我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

#1) 尊重别人的隐私。
#2) 输入前要先考虑(后果和风险)。
#3) 权力越大,责任越大。

[sudo] aming 的密码:
这时他需要我们输入aming用户的密码,我们输入密码后就可以显示结果了
aming anaconda-ks.cfg
而第二次则不需要输入密码
[aming@localhost ~]$ sudo /usr/bin/ls /root/
aming anaconda-ks.cfg
我们也可以cat一个文件
[aming@localhost ~]$ cat /root/1.txt
cat: /root/1.txt: 权限不够
[aming@localhost ~]$ sudo /usr/bin/cat /root/1.txt
[aming@localhost ~]$
这样就可以让普通用户拥有指定几项命令的root用户权限,而不让root用户的密码泄露出去,保证安全。

visudo还有其他的一些用法,我们也可以不输入密码
只要在输入命令的绝对路径前输入NOPASSWD:即可
user5 ALL=(ALL) NOPASSWD: /usr/bin/ls, /usr/bin/cat
[user5@localhost ~]$ ls /root
ls: 无法打开目录/root: 权限不够
[user5@localhost ~]$ sudo ls /root
111.txt 1.txt 2.txt aming anaconda-ks.cfg
这样就可以不输入密码直接使用了

su、sudo,限制root远程登录

标签:ali   恢复   隐私   文件   用法   cst   etc   alias   参数   

原文地址:http://blog.51cto.com/13067688/2070000

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