导读:本期聚焦于小伙伴创作的《linux添加新用户的命令是什么?新手如何快速创建系统账户》,敬请观看详情。刚接手一台Linux服务器时,最基础的操作往往是给团队同事开个独立账号。系统里其实存在两条创建用户的路径:一条是底层通用的useradd,另一条是封装了交互逻辑的adduser。两者最终都写入了/etc/passwd与/etc/shadow,但参数行为和主目录初始化方式差别明显。如果直接敲useradd不加参数,新账号常常没有家目录,登录后卡在异常环境。本文从实际运维场景出发,对比这两条命令的差异,演示如何指定用户组、家目录和登录shell,并说明用passwd设置密码、用id校验结果的完整流程,帮助你避开权限配置中的常见坑。

在Linux系统中,添加新用户主要依赖两个命令:useradd和adduser。前者是所有发行版都自带的底层工具,后者多见于Debian系,是一个perl编写的交互式封装脚本。理解它们的工作方式,是服务器账号管理的基础。

linux添加新用户的命令是什么?新手如何快速创建系统账户

一、useradd命令的基本用法

useradd是最标准的创建用户命令,它在绝大多数Linux发行版中都能直接使用。默认情况下,如果不加任何参数,useradd只会在/etc/passwd中登记一条记录,而不会自动创建家目录,也不会设置密码。这种“裸创建”方式常让新手困惑:为什么新用户登录后找不到个人目录。

为了创建一个功能完整的用户,我们通常要显式指定参数。例如使用-m参数强制生成家目录,-s参数设定登录shell,-G参数将其加入附加组。下面这段命令创建了一个名为dev01的账号,生成/home/dev01目录,并使用bash作为默认shell:

# 创建用户并指定家目录和shell
sudo useradd -m -s /bin/bash -G sudo dev01

# 为用户设置初始密码
sudo passwd dev01

# 验证用户与所属组
id dev01

上面的代码中,-m代表make home directory,若系统未配置CREATE_HOME策略则必须手动加。-G sudo把用户放进sudo组,使其具备管理员提权能力。执行passwd后,系统会提示输入两次密码,该密码经哈希后写入/etc/shadow。最后用id命令可确认uid、gid及附属组是否如预期。

useradd还有一个重要特性:它支持-D参数查看或修改默认配置。比如默认shell、默认组范围都定义在/etc/default/useradd里。当你需要在批量部署时统一规则,直接改这个文件比每条命令都写全参数更省事。

二、adduser命令的交互优势

在Ubuntu、Debian等系统中,adduser是一条更友好的路径。它本质上是个脚本,在后台调用useradd,但会自动询问密码、全名、电话等信息,并默认建好家目录。对于不常敲命令的运维人员,这种引导式创建能显著降低出错率。

执行sudo adduser test02后,终端会依次提示输入密码、确认密码、用户全名等字段,回车跳过非必填项即可。整个过程无需记忆参数,脚本会按/etc/adduser.conf中的模板复制骨架文件到新家目录,比如.bashrc、.profile等,让登录环境开箱即用。

# Debian系交互式添加用户
sudo adduser test02

# 输出示例(交互部分省略)
# Adding user `test02' ...
# Adding new group `test02' (1001) ...
# Adding new user `test02' (1001) with group `test02' ...

adduser的缺点是并非所有发行版都预装,CentOS等Red Hat系默认只有useradd。此外它在非交互脚本中调用时,需要借助--disabled-login或环境变量来绕过提问,不如useradd那样适合写进自动化playbook。

从权限管控角度看,adduser创建的用户同样受/etc/login.defs约束,比如密码最长有效期、uid最小值等。因此无论用哪种命令,底层安全策略是一致的,区别仅在于前台封装程度。

三、创建后的校验与常见问题

用户建完后,第一件事应是确认账号确实可用。除了前面提到的id命令,还可以直接尝试切换身份:su - dev01进入其环境,看家目录是否正确、命令提示符是否正常。若提示“无法分配终端”或“主目录不存在”,多半是忘了加-m或父目录权限不对。

另一个易错点是用户组冲突。当你用useradd -G指定多个组时,组名必须已存在,否则命令报错。下面用表格列出两条命令在关键行为上的差异,方便按场景选用:

对比项useraddadduser
家目录默认创建否,需-m
交互式提问
适用发行版全平台Debian系为主
批量脚本友好度

如果误建了用户,可用userdel -r dev01连同家目录一起删除,避免残留文件占用磁盘。对于需要限定登录权限的账号,还可将shell设为/sbin/nologin,使其仅能用于ftp或程序运行,无法交互登入。

提示:生产环境建议统一用useradd配合配置管理工具下发,既保证一致性,也方便审计每条账号的创建参数。

四、结合配置文件做标准化

当机器数量变多,手动敲命令难免疏漏。此时可以修改/etc/default/useradd,把SHELL设为/bin/bash,HOME设为/home,GROUP设为100,这样以后跑useradd zhangsan就会自动套用规则。类似地,/etc/skel目录里的文件会作为家目录模板被复制,你可以把公司通用的vim配置、ssh授权模板放进去。

下面示例展示如何查看并调整默认配置,让后续添加用户更省心:

# 查看当前useradd默认值
sudo useradd -D

# 修改默认shell为bash
sudo useradd -D -s /bin/bash

# 修改默认家目录基路径
sudo useradd -D -b /home

经过这番设置,团队新成员上机时,你只需一条useradd -m lisi便能交付一个环境完备的账号。结合passwd与visudo分配sudo权限,整套账号生命周期管理就清晰可控了。

最后强调一点:无论用哪种方式添加用户,都要遵循最小权限原则。不要默认把所有人塞进sudo组,按角色建组再授权,后期排查问题会轻松很多。

useraddadduserlinux_user_management修改时间:2026-08-03 03:36:29

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。