开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

禁止存在UID为0的非root账号

在Linux系统中,UID为0的账号是特权账号,通常默认为root账号。系统中不允许存在非root账号的UID等于0,若将root账号UID更改为其他值,而将其他账号(如test)的UID设为0,则该test账号将拥有特权账号权限,这将带来以下主要风险:

  • 安全合规问题:业界通用的安全扫描工具会认为test账号设置了非法UID。
  • 管理风险增加:若用户在使用test账号时未意识到其拥有特权账号权限,可能因疏忽的缘故导致系统被破坏。

操作步骤

  1. 通过如下命令检查“/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
  2. 请通过以下方式修改账号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”文件。