### 怎么建立隐藏用户

### **1. Windows 系统**

在 Windows 中，隐藏用户通常有两种实现方式

**1.1 使用 `$` 符号创建隐藏账户**

这是最简单也是最常见的方法，主要用于在命令行中隐藏用户

- **原理**: Windows 系统的设计中，以 `$` 结尾的账户名被视为“计算机账户”，通常用于系统或服务之间通信。这些账户默认在 `net user` 命令的列表中不显示

- **操作步骤**:

  1. 使用管理员权限打开命令提示符（`cmd`）或 PowerShell

  2. 执行以下命令创建账户：

     ```cmd
     net user username$ password /add
     ```

  3. 将该账户添加到管理员组，赋予其更高权限：

     ```cmd
     net localgroup Administrators username$ /add
     ```

- **如何查看**: 虽然 `net user` 看不到，但这个账户仍然存在于系统中。你可以通过以下方式查看：

  - `wmic useraccount where "name like '%'" get name,sid`
  - 通过注册表编辑器查看 `HKEY_LOCAL_MACHINE\SAM\SAM`（需要特殊权限）

**1.2 通过修改注册表隐藏账户**

这是一个更高级、更隐蔽的方法，可以让账户不出现在登录界面和常规用户列表中

- **原理**: Windows 通过注册表的一个特定键值来控制哪些用户账户在登录界面显示。通过修改这个键值，可以隐藏任何账户

- **操作步骤**:

  1. 首先创建一个普通用户账户并赋予权限：

     ```
     net user testuser password /add
     net localgroup Administrators testuser /add
     ```

  2. 打开注册表编辑器（`regedit`），定位到以下路径：

     ```
     HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList
     ```

  3. 在 `UserList` 键下，右键单击并选择**新建 -> DWORD (32位) 值**

  4. 将新建的值命名为你要隐藏的账户名，例如 `testuser`

  5. 默认情况下，这个 DWORD 值为 `0`，这正好可以隐藏该账户

- **如何查看**: 这个账户在登录界面和常规用户列表中都看不见。只有通过命令行、`wmic` 或直接在注册表中查看才能发现其存在

**2. Linux 系统**

在 Linux 中，隐藏用户的方式主要依赖于其账户管理机制

**2.1 创建一个 UID 小于 1000 的账户**

- **原理**: 许多 Linux 系统管理工具（如 `useradd` 的默认行为、`passwd` 文件浏览器）都约定俗成地只显示 UID 大于或等于 1000 的账户，将 UID 小于 1000 的账户视为系统服务账户

- **操作步骤**:

  1. 使用 `useradd` 命令创建账户时，指定一个低于 1000 的 UID：

     ```bash
     useradd -u 999 -s /bin/bash -m testuser
     passwd testuser
     ```

  2. 赋予其管理员权限：

     ```bash
     usermod -aG sudo testuser
     ```

- **如何查看**: 这个账户可以通过 `cat /etc/passwd` 看到，但许多工具不会在用户列表中显示它