在 Linux 服务器管理中,用户管理是一项基础且至关重要的任务,对于像 CentOS 6.7 这样稳定且广泛使用的服务器操作系统而言,合理地创建和配置用户账户,不仅是保障系统安全的第一道防线,也是实现多用户协作、权限精细化分配的前提,本文将详细介绍在 CentOS 6.7 系统中添加用户的多种方法、相关命令选项以及最佳实践,帮助系统管理员高效、准确地完成用户创建工作。

核心命令:useradd
在 CentOS 6.7 中,添加用户最核心的命令是 useradd,这个命令功能强大,提供了丰富的选项来满足不同场景下的需求,其最基本的用法非常简单,但为了实现更安全的配置,建议了解并使用其常用参数。
基本用法
最简单的用户创建命令如下:
useradd newuser
执行此命令后,系统会执行一系列默认操作:
- 在 
/etc/passwd文件中为newuser创建一行记录。 - 在 
/etc/shadow文件中为newuser创建一行记录,但密码字段为空,意味着该用户暂时无法登录。 - 创建一个与用户名同名的主用户组。
 - 在 
/home目录下创建一个名为newuser的主目录。 - 将 
/etc/skel目录下的所有文件(如.bashrc,.bash_profile等)复制到用户的主目录中,作为用户的初始环境配置文件。 
重要提示:仅使用 useradd 创建的用户并未设置密码,因此无法通过 SSH 或控制台登录,接下来必须使用 passwd 命令为其设置密码。
常用参数详解
为了更灵活地创建用户,useradd 提供了多个参数,以下是一些最常用的选项:
-d, --home HOME_DIR:指定用户的主目录,而非系统默认的/home/username。-s, --shell SHELL:指定用户登录后的 Shell。/bin/bash是常用的交互式 Shell,而/sbin/nologin则表示该用户不能登录系统,常用于运行服务账号。-g, --gid GROUP:指定用户的主用户组,该组必须已存在。-G, --groups GROUP1,GROUP2:指定用户的附加组,用户可以同时属于多个组。-c, --comment COMMENT:为用户添加一段描述信息,例如用户的全名或职位。-m, --create-home:如果用户的主目录不存在,则自动创建,这是默认行为,但在某些特殊配置下可能需要显式指定。
设置用户密码:passwd
创建用户后,必须使用 passwd 命令为其设置密码,该命令会以交互式方式提示你输入新密码并确认,确保密码在输入过程中不会明文显示在屏幕上,提高了安全性。
passwd newuser
执行后,系统会提示:

Changing password for user newuser.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
综合实例:创建一个开发者用户
假设我们需要创建一个名为 developer 的用户,要求如下:
- 主目录位于 
/var/www/developer。 - 可以登录系统,使用 Bash Shell。
 - 属于 
developers用户组(假设该组已存在)。 - 备注信息为 "Web Developer Account"。
 
操作步骤如下:
- 
(可选)
developers组不存在,先创建它:groupadd developers
 - 
使用
useradd创建用户并指定各项参数:useradd -d /var/www/developer -s /bin/bash -G developers -c "Web Developer Account" developer
这个命令整合了多个参数,精确地定义了新用户的属性。
 - 
为新用户设置密码:
passwd developer
 - 
验证用户创建是否成功: 可以通过查看
/etc/passwd文件或使用id命令来确认。
id developer
输出应类似
uid=501(developer) gid=501(developer) groups=501(developer),502(developers),表明用户已成功创建并加入了指定的组。 
为了方便快速查阅,下表小编总结了 useradd 的关键选项:
| 选项 | 功能描述 | 
|---|---|
-d HOME_DIR | 
指定用户的主目录路径 | 
-s SHELL | 
指定用户登录后使用的 Shell | 
-g GROUP | 
指定用户的主用户组 | 
-G GROUPS | 
指定用户的附加组,多个组用逗号分隔 | 
-c COMMENT | 
添加用户的描述信息 | 
-m | 
如果主目录不存在则自动创建 | 
-r | 
创建一个系统用户,UID 通常小于 500 | 
相关问答 (FAQs)
问题 1:我使用 useradd 创建了一个用户,但为什么他无法通过 SSH 登录?
解答:这通常有两个主要原因,第一,也是最常见的原因,是你忘记为新用户设置密码,一个没有密码的用户账户是被禁用登录的,请使用 passwd username 命令为其设置密码,第二,请检查该用户的 Shell 是否被设置为了 /sbin/nologin,这个 Shell 的作用就是禁止用户登录,你可以通过 grep username /etc/passwd 命令查看该用户的 Shell 设置,如果确实是 /sbin/nologin,可以使用 usermod -s /bin/bash username 命令将其修改为可登录的 Shell。
问题 2:普通用户和系统用户有什么区别?我应该用什么命令创建系统用户?
解答:在 CentOS 等系统中,用户通过用户 ID (UID) 来区分类型,UID 0 是 root 用户,UID 1-499 是系统用户,UID 500 及以上的是普通用户,系统用户主要用于运行系统服务或守护进程(如 apache, mysql),它们通常不需要登录 Shell,也没有主目录,普通用户则是为实际使用系统的人员创建的,要创建一个系统用户,建议在 useradd 命令后加上 -r 选项,useradd -r -s /sbin/nologin serviceuser。-r 选项会自动分配一个系统范围内的 UID,并且默认不会创建主目录。