在Linux系统中,新建用户并完成登录是基础且重要的操作,涉及用户创建、权限配置及登录方式等多个环节,以下是详细步骤和注意事项,帮助顺利完成用户登录流程。

创建新用户
Linux中创建用户主要通过useradd或adduser命令实现,两者功能相似但存在差异:useradd是底层命令,参数丰富,适合脚本化操作;adduser是交互式前端工具,默认会创建主目录、设置基本配置,更适合手动操作,以useradd为例,常用参数如下:
| 参数 | 作用 | 示例 |
|---|---|---|
-m |
自动创建用户主目录(默认位于/home/用户名) | useradd -m testuser |
-s |
指定用户登录shell(如/bin/bash、/bin/sh) |
useradd -m -s /bin/bash testuser |
-g |
指定主用户组(需提前存在) | useradd -m -g users testuser |
-G |
指定附加用户组(多个组用逗号分隔) | useradd -m -G sudo,docker testuser |
-c |
添加用户注释(如真实姓名) | useradd -m -c "Test User" testuser |
操作示例:
创建一个名为testuser的用户,自动创建主目录,使用/bin/bash作为shell,并加入sudo组(需提前确认sudo组存在,可通过cat /etc/group | grep sudo查看):
sudo useradd -m -s /bin/bash -G sudo testuser
设置用户密码
新建用户默认无密码或密码为空,无法直接登录,需通过passwd命令设置密码,执行时会要求输入两次密码(屏幕不显示),且密码需满足系统复杂度要求(如长度、字符类型)。
操作示例:
为testuser设置密码:

sudo passwd testuser
根据提示输入密码后,可通过last testuser查看用户最近登录记录,或cat /etc/shadow验证密码是否加密存储(密码字段为表示锁定,非则已设置)。
用户组与权限配置
Linux通过用户组管理权限,新用户默认创建同名主组(如testuser属于testuser组),若需加入其他组(如sudo管理员组、docker技术组),可通过usermod命令修改:
# 将用户加入附加组(多个组用逗号分隔) sudo usermod -aG sudo,docker testuser # 从组中移除用户 sudo gpasswd -d testuser sudo
若需赋予管理员权限,确保用户属于sudo组(sudo组用户可通过sudo command执行特权命令)。
登录新用户
命令行登录(适用于服务器或无界面环境)
-
切换用户:登录后可通过
su或su -切换至新用户。
su testuser:仅切换用户身份,环境变量保持原用户(不推荐,可能导致权限问题)。su - testuser:完全切换用户,加载新用户的配置文件(如.bashrc),推荐使用。
图形界面登录(适用于桌面版Linux)
- 登录界面操作:在登录窗口点击用户列表(或手动输入用户名),输入密码后即可进入桌面。
- 用户列表管理:部分发行版(如Ubuntu)可通过
Users图形工具(gnome-control-center users)添加用户,勾选“Administrator”赋予sudo权限。
常见问题排查
- 提示“Authentication failure”:检查密码是否正确,或确认用户是否已设置密码(
passwd -S testuser查看密码状态)。 - 提示“Directory /home/testuser does not exist”:创建用户时未加
-m参数,需手动创建目录并设置权限:sudo mkdir -p /home/testuser sudo chown testuser:testuser /home/testuser sudo chmod 700 /home/testuser
- 无法使用sudo:确认用户是否属于
sudo组(groups testuser),或检查/etc/sudoers文件(sudo visudo编辑)中是否有相关配置。
相关问答FAQs
Q1:创建用户后忘记密码,如何重置?
A1:以root用户或具有sudo权限的用户登录,执行sudo passwd testuser,按提示输入新密码即可重置,若root用户也无法登录,需通过单用户模式或Live CD修复系统。
Q2:如何禁止用户通过SSH登录?
A2:编辑/etc/ssh/sshd_config文件,找到AllowUsers或DenyUsers指令,添加或修改为DenyUsers testuser,保存后重启SSH服务(sudo systemctl restart sshd),也可通过usermod -s /sbin/nologin testuser禁用命令行登录(保留其他登录方式)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/35979.html