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'


浙公网安备 33010602011771号