Linux作为多用户多任务操作系统,用户管理是系统管理的基础操作之一,正确创建用户并实现登录,是保障系统安全与多用户协作的关键,本文将详细讲解Linux系统中新建用户的完整流程,包括创建用户、设置密码、登录验证及常见问题解决,帮助用户全面掌握从零到新建用户登录的全过程。

创建新用户:Linux用户管理的起点
在Linux中,用户信息存储在/etc/passwd文件中,而密码则经过加密后保存在/etc/shadow文件中,创建新用户需通过特定命令完成,常用命令为useradd(低级命令,需手动指定参数)和adduser(高级命令,交互式引导,适合新手)。
使用useradd命令创建用户
useradd是Linux系统中最基础的创建用户命令,需结合参数实现灵活配置,常用参数如下:
| 参数 | 作用 | 示例 |
|---|---|---|
-m |
自动创建用户家目录(默认不创建) | sudo useradd -m newuser |
-s |
指定用户默认登录Shell(如/bin/bash) |
sudo useradd -m -s /bin/bash newuser |
-d |
指定家目录路径(需配合-m) |
sudo useradd -m -d /home/custom newuser |
-g |
指定用户主组(需组已存在) | sudo useradd -m -g developers newuser |
-G |
指定用户附加组(多个组用逗号分隔) | sudo useradd -m -G sudo,docker newuser |
示例:创建一个名为testuser的用户,家目录为/home/testuser,默认Shell为/bin/bash,并加入sudo组(赋予管理员权限):
sudo useradd -m -s /bin/bash -G sudo testuser
执行后,可通过cat /etc/passwd | grep testuser查看用户是否创建成功,输出类似testuser:x:1001:1001::/home/testuser:/bin/bash,其中1001为用户ID(UID)和主组ID(GID)。
使用adduser命令创建用户
adduser是useradd的封装版,会以交互式方式提示输入用户信息,并自动创建家目录和配置文件,适合不熟悉参数的用户,执行后按提示操作即可:
sudo adduser newuser
系统会依次询问用户名、全名、房间号、电话号码等信息(可直接回车跳过),最后设置并确认密码。
设置与修改用户密码
创建用户后,必须设置密码才能登录,Linux中通过passwd命令管理密码,普通用户只能修改自己的密码,root用户可修改任意用户密码。
为新用户设置初始密码
以root身份执行passwd命令,后接用户名:

sudo passwd testuser
系统会提示输入两次密码(输入时不会显示字符),设置成功后显示passwd: password updated successfully。
普通用户修改自己的密码
直接执行passwd命令,无需加用户名:
passwd
输入当前密码验证后,设置新密码两次。
密码复杂度要求
Linux系统默认通过/etc/login.defs和/etc/pam.d/passwd配置密码策略,通常要求密码长度至少8位,包含大小写字母、数字和特殊字符,若需临时放宽策略,可修改/etc/pam.d/passwd文件(不推荐生产环境操作)。
用户登录验证:命令行与图形界面双模式
Linux用户登录分为命令行登录(文本界面)和图形界面登录(GUI),根据系统安装的桌面环境选择不同方式。
命令行登录(文本模式)
在无图形界面的服务器或最小化安装的Linux中,用户需通过终端登录,登录步骤如下:
- 启动终端:系统启动后,在登录界面输入用户名,按回车,再输入密码(密码不显示)。
- 切换用户:若当前已登录root或其他用户,可通过
su或su -命令切换到新用户:su testuser:仅切换用户身份,不加载目标用户的环境变量(如家目录配置文件)。su - testuser:完全切换,加载目标用户的~/.bashrc等配置文件,推荐使用此方式。
图形界面登录(GUI模式)
对于安装了GNOME、KDE等桌面环境的Linux系统(如Ubuntu桌面版、CentOS 7+),用户可通过图形界面登录:
- 登录界面:系统启动后,在用户列表中选择新建的用户,或手动输入用户名,点击“登录”按钮。
- 输入密码:在密码框中输入设置好的密码,若勾选“记住我”可下次自动登录(安全性较低)。
- 问题排查:若新建用户未出现在登录列表,可能是未创建图形登录权限,可通过
sudo usermod -aG GDM testuser(GDM为GNOME显示管理器)将用户加入允许登录的组。
用户权限管理:确保安全与协作
新建用户默认权限有限,若需执行管理员操作(如安装软件、修改系统文件),需通过sudo命令授权。

配置sudo权限
sudo允许普通用户以root身份执行命令,需编辑/etc/sudoers文件(推荐使用visudo命令避免语法错误):
sudo visudo
在文件末尾添加testuser ALL=(ALL:ALL) ALL,表示testuser可在所有终端以所有用户身份执行所有命令,也可使用用户组简化配置,如%sudo ALL=(ALL:ALL) ALL(表示组,sudo组默认已有此权限)。
验证sudo权限
切换到新用户,执行sudo命令(如sudo ls /root),首次需输入用户密码(后续15分钟内可免密),若显示/root,则配置成功。
常见问题与解决方法
问题:创建用户后无法登录,提示“Authentication failure”
原因:密码未设置或输入错误;家目录权限异常;Shell路径错误。
解决:
- 检查密码:
sudo passwd testuser重新设置密码。 - 检查家目录:
ls -ld /home/testuser,权限应为700(所有者可读写执行),若异常可通过sudo chmod 700 /home/testuser修复。 - 检查Shell:
cat /etc/passwd | grep testuser确认Shell路径是否正确(如/bin/bash),错误时用sudo usermod -s /bin/bash testuser修改。
问题:使用su -切换用户时提示“su: failed to execute /bin/bash: No such file or directory”
原因:用户Shell路径配置错误,或系统中未安装对应Shell。
解决:
- 检查Shell:
grep testuser /etc/passwd查看Shell字段是否为系统中存在的路径(如/bin/bash、/bin/sh)。 - 修改Shell:若系统中已安装
bash,但路径错误,用sudo usermod -s /bin/bash testuser修正;若未安装,通过sudo apt install bash(Ubuntu)或sudo yum install bash(CentOS)安装。
相关问答FAQs
Q1:创建用户时忘记设置密码,如何补救?
A1:可通过passwd命令为用户重置密码,以root身份执行sudo passwd 用户名,按提示输入两次新密码即可,为testuser重置密码:sudo passwd testuser。
Q2:为什么新建用户无法使用sudo命令?
A2:默认情况下,新建用户不属于sudo组,因此无管理员权限,可通过两种方式解决:
- 将用户加入
sudo组:sudo usermod -aG sudo 用户名(适用于Ubuntu/Debian); - 编辑
/etc/sudoers文件(sudo visudo),添加用户名 ALL=(ALL:ALL) ALL,保存后退出。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/36127.html