Linux禁止root远程登陆及用户操作权限控制

 只是为了安全度更高, 看公司及个人需求确定做还是不做

1. 提权个普通用户 admin可以sudo

useradd admin
echo 123|passwd --stdin admin   或者  passwd  admin 交互式设置密码
\cp /etc/sudoers /etc/sudoers.ori
echo "admin ALL=(ALL) NOPASSWD: ALL " >>/etc/sudoers
tail -1 /etc/sudoers
visudo -c

 

[root@localhost ~]# visudo    ## 直接vi也可以修改/etc/sudoers,建议还是visudo 

 

2. 禁止root远程登陆

[root@localhost ~]# vim /etc/ssh/sshd_config     ## 找到 PermitRootLogin   把yes 改为no  , 重启sshd

[root@localhost ~]# service sshd restart
或者
[root@localhost ~]# systemctl restart sshd.service

 

未修改前可以远程连接

 改完后就连接不上了

 

3. 可选: 禁止普通用户admin远程登录, 新增普通用户 bszh 只能登录不能sudo

禁止admin用户ssh登录    DenyUsers admin     改为重启服务

 

新增个过渡用的普通用户

useradd  bszh
echo 123|passwd --stdin bszh   或者  passwd  bszh 交互式设置密码

因为没给 bszh 用户权限, 这个用户基本是个废材.但是这个用户有远程登陆的权限.

 验证整个登陆过程

大概示意图

 

 

4. 可选: 修改ssh默认的22端口

vim /etc/ssh/sshd_config

/etc/init.d/sshd restart      或  systemctl restart sshd.service

 

5.  su  和 su - 区别

su    不切换当前路径, 当前环境也不切换. 

su -    切换到新用户家目录, 切换到新用户环境

 

 

6. 用户操作权限控制visudo

前面做过了.  禁止root远程登录. 普通用户sudo 提权. 但是好像大部分人为图方便. 都是普通用户连上服务器后,直接 sudo su - 到root操作. root用户操作难免会发生误操作. 为避免误操作做一下用户的操作限制.

现在把普通用户直接sudo su - 到root的权限禁掉, 其他的敏感命令也禁用. 这样admin用户就不可以直接跳到root用户了. 每次使用其他命令前加sudo. 如果需要跳到root用户. 只能直接 su -  然后输入root用户密码

admin  ALL=(ALL)   NOPASSWD: ALL, !/bin/su, !/bin/rm, !/usr/bin/yum, !/sbin/mkfs*, !/bin/dd, !/usr/sbin/userdel      #####  感叹号排除敏感命令

 

大部分命令是可以正常使用的. 敏感命令无权使用了.

 

7. 附加: 敏感命令加别名 

配置生效顺序( 追加到最后一行 ):   /etc/profile.d   /etc/profile     ~/.bashrc(非最后一行)     /etc/bashrc     ~/.bash_profile  

[root@centos-A ~]# alias 
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

 

 

  

posted @ 2019-03-05 14:49  mingetty  阅读(226)  评论(0)    收藏  举报