禁止存在UID为0的非root账号
在Linux系统中,UID为0的账号是特权账号,通常默认为root账号。系统中不允许存在非root账号的UID等于0,若将root账号UID更改为其他值,而将其他账号(如test)的UID设为0,则该test账号将拥有特权账号权限,这将带来以下主要风险:
- 安全合规问题:业界通用的安全扫描工具会认为test账号设置了非法UID。
- 管理风险增加:若用户在使用test账号时未意识到其拥有特权账号权限,可能因疏忽的缘故导致系统被破坏。
操作步骤
- 通过如下命令检查“/etc/passwd”文件中是否存在UID为0的非root账号。
cat /etc/passwd | awk -F ":" '{if($1!="root" && $3==0){print $1, $3}}'返回如下信息,则表示test账号的UID为0。若系统中不存在UID为0的非root账号,则该命令不会有任何输出。
test 0
- 请通过以下方式修改账号UID。
- 方式一:直接修改“/etc/passwd”对应账号的UID字段,然后重启系统,需要确保修改的UID不能同其他账号重复。
- 方式二:通过usermod命令修改账号UID,以将test账号的UID改为2000为例。
usermod -u 2000 test
若被修改的账号UID为0,则会出现“usermod: user test is currently used by process 1”报错。因为UID为0的账号会被1号进程占用,只能选择方式一手动修改“/etc/passwd”文件。
父主题: 安全访问