前言
为了增强的系统的安全性,有时候我们会增加一些安全配置,但是又时候有些配置真的没必要,并且比较危险。
登陆过程
输入账号密码后,系统会先在/etc/passwd文件内核对输入的账号,如果有就读取账号对应的UID、GID,家目录、shell设置
然后查找/etc/shadow中对应账号、UID,并核对输入的密码
正确则进入login shell,读取/etc/profile的配置,执行/.bash_profile、/.bashrc、/etc/bashrc
由此可知,我们可以通过修改/etc/passwd等修改用户权限,修改/etc/profile等添加环境变量
为什么没有/etc/rc.loacl?这个是在开机自启里的和登陆过程没什么关系
危险配置
当知道上面这些,就会有人想,那么能不能通过直接修改上面的那2个文件来把用户名或家目录改了。比如root经常被爆破,把root账号改名,加强安全防护
于是有人研究出下面这个方法:
vim /etc/passwd
修改第1行第1个root为新的用户名
vim /etc/shadow
修改第1行第1个root为新的用户名
效果:
root的用户名变成了修改的新用户名,root权限可用,ssh登陆管理员需要修改为新用户名
副作用:
配置的sudo,限制账号可使用的命令和配置免密码的 全部失效
问题原因:
root不仅仅是普通的用户名,它是linux系统默认的管理员账号,并且它是一个权限
你可以添加一个有root权限的账号,但是你不能直接对权限修改,否则会导致各种问题
当然如果是要对普通用户操作,这个方法可以(/etc/group也要改),但是建议使用命令usermod
还有一个问题,自己修改/etc/passwd等文件,如果改错了,会导致无法登陆
解决方法:
如果改出问题了,建议怎么改的怎么改回去。如果改的系统进不去了
正常操作
通常避免root被破解,一般过程是:
<1>禁止root远程登录
<2>创建用户并设置指定用户组可切换到root用户
可参考如下链接:
https://blog.csdn.net/GX_1_11_real/article/details/89334708
or
<1>禁止root远程登录
<2>创建用户并在/etc/sudoers文件,找到下面一行,在root下面添加一行,使新用户有root权限
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
xing ALL=(ALL) ALL
补充
将某个普通用户获取root权限方法:
修改/etc/passwd文件,把用户ID(uid)修改为0
/etc/passwd以":"为分隔的各部分所代表的含义:
用户名:密码:用户uid:用户组gid:描述:主目录:登录Shell
(由于密码被记录在了 /etc/shadow 文件中,第二个位置显示为x)
普通情况下不建议使用。给自己凿了个洞,就代表给别人也开了个窗。临时用完,记得改回去