---
title: 禁止存在UID为0的非root账号
description: "在Linux系统中，UID为0的账号是特权账号，通常默认为root账号。系统中不允许存在非root账号的UID等于0，若将root账号UID更改为其他值，而将其他账号（如test）的UID设为0，则该test账号将拥有特权账号权限，这将带来以下主要风险："
url: https://www.hikunpeng.com/document/detail/zh/kunpengaiagent/bestpractice/aiagent-0029.html
sourcePath: /source/zh/kunpengaiagent/bestpractice/aiagent-0029.html
indexId: 135eb41c7b6e1c849bc30e41fd138d0d9d2af425e4f8d038a40d51f399b3903656
---
# 禁止存在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”文件。
