su命令,sudo,限制远程登入
一 su命令
su 的用法:
su [OPTION选项参数] [用户]
通过su可以在用户之间切换,如果超级权限用户root向普通或虚拟用户切换不需要密码,什么是权力?这就是!而普通用户切换到其它任何用户都需要密码验证;
-, -l, ——login 登录并改变到所切换的用户环境;
[root@xavi-001 ~]# su - xavi
[xavi@xavi-001 ~]$ pwd
/home/xavi
[xavi@xavi-001 ~]$ ls -la
总用量 20
drwx------. 5 xavi xavi 144 12月 21 22:13 .
drwxr-xr-x. 8 root root 87 12月 25 22:54 ..
-rw-------. 1 xavi xavi 526 12月 26 22:28 .bash_history
-rw-r--r--. 1 xavi xavi 18 8月 3 2016 .bash_logout
-rw-r--r--. 1 xavi xavi 193 8月 3 2016 .bash_profile
-rw-r--r--. 1 xavi xavi 231 8月 3 2016 .bashrc
drwxrwxr-x. 3 xavi xavi 18 12月 21 20:15 .cache
-c, ——commmand=COMMAND 执行一个命令,然后退出所切换到的用户环境;
#su - -c "touch /tmp/xavi.111 xavi
- 如果不加—切换到普通账户时,当前目录没有变化,而加上—切换,当前目录为家目录/home/user2
[xavi@xavi-001 ~]$ su - user2 //切换到user2用户
密码: //在这里输入密码;
上一次登录:三 12月 27 21:13:12 CST 2017pts/0 上
[user2@xavi-001 ~]$ pwd //查看用户当前所处的位置;
/home/user2
[root@xavi-001 ~]# id user2
uid=1003(user2) gid=1003(user2) 组=1003(user2) //查看用户的UID和GID信息,主要是看是否切换过来了;
二. sudo 授权许可使用的su,也是受限制的su
通过sudo,我们能把某些超级权限有针对性的下放,并且不需要普通用户知道root密码,所以sudo 相对于权限无限制性的su来说,还是比较安全的,所以sudo 也能被称为受限制的su ;另外sudo 是需要授权许可的,所以也被称为授权许可的su;
-
使用visudo命令编辑相关的配置文件,如果没有命令,请使用yum insall -y sudo安装
-
输入“i”编辑模式,并保存
- 如果这里发现可以查看访问,是因为用户有可能在之前已经设置了setuid,取消命令
#chmod g-s /usr/bin/ls
- 设置用户切换后无需输入密码验证
- 利用visudo,编辑新的命令
#wheel ALL=(ALL) ALL 这组的所有用户都拥有了sudo权利,接下来,只要把需要设置sudo权限的所有用户加入到wheel这个组即可。
三限制远程登入
vi /etc/ssh/sshd_config
- /etc/ssh/sshd_config为sshd服务的配置文件,默认允许root账户通过ssh远程登Linux,要想不允许用户远程登入,操作方法为:修改配置文件/etc/ssh/sshd_config,在文件中查找#PermitRootLogin yes并修改为PermitRootLogin no.
修改完成后保存,并重启sshd服务,这里只针对ssh远程登入的情况
[root@xavi-001 ~]# systemctl restart sshd.service
[root@localhost test]# usermod -G wheel Ding
[root@localhost test]# vim /etc/pam.d/su
#%PAM-1.0
auth sufficient pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth sufficient pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
auth required pam_wheel.so use_uid
auth substack system-auth
auth include postlogin
account sufficient pam_succeed_if.so uid = 0 use_uid quiet
account include system-auth
password include system-auth
session include system-auth
session include postlogin
session optional pam_xauth.so