发布于2026-08-06 阅读(0)
扫一扫,手机访问
创建Linux普通用户,听起来简单,但实际操作中翻车的可不少。直接用 useradd -m 或 adduser 确实能搞定,可一旦漏掉 -m、没设密码、没加组权限,那用户大概率登录失败,或者连基本的管理命令都跑不了。下面把这几个关键点拆开说清楚。

-m 参数很多新手一上来就运行 sudo useradd username,结果切过去发现是个空壳环境,甚至 su - username 直接报错 “No directory, logging in with HOME=/”。问题就出在默认不创建家目录(/home/username),而且 shell 可能是 /bin/sh 或 /sbin/nologin,根本没法交互。
正确的写法是:
sudo useradd -m -s /bin/bash username
这里 -m 强制建家目录,-s /bin/bash 显式指定可交互的 shell。一些精简系统(比如 Alpine、某些容器镜像)连 -m 都不默认启用,必须手动加。
-m:家目录不存在,su - 失败,图形登录拒绝,~ 路径解析为 /-s:可能继承系统默认 shell(如 /bin/sh),缺少历史记录、补全等交互功能adduser 是个 Perl 脚本封装,它自动调用 useradd 并复制 /etc/skel/ 下的配置文件(如 .bashrc)、设好权限、引导输入密码——全程交互提示,容错率高。
执行:
sudo adduser username
它会依次问密码、全名、房间号等,除密码外全可回车跳过。完成后家目录已就绪,su - username 可直接进入。
adduser,装了也是符号链接到 useradd,无交互功能useradd 却没加 -m,再补 mkdir /home/username && cp -r /etc/skel/. /home/username 很容易漏掉权限修复adduser 不支持批量或脚本化,适合单次、人工操作sudo 或 wheel 组刚创建的用户默认没有任何管理员权限。运行 sudo ls 会提示 “username is not in the sudoers file”。这不是密码错了,是根本没被授权。
根据发行版选择对应命令:
sudo usermod -aG sudo usernamesudo usermod -aG wheel username注意 -aG 中的 -a(append)不能省——漏掉就等于覆盖原有组,用户可能被踢出 users 或其他必要组。
验证是否生效:groups username 输出里应含 sudo 或 wheel;切换过去后 sudo -l 可查允许执行的命令。
useradd 创建的用户密码字段在 /etc/shadow 里是 * 或 !,代表“锁定”或“无密码”,根本无法登录。必须显式运行:
sudo passwd username
输入两次密码即完成。此时密码哈希才写入 /etc/shadow。
adduser 会在创建流程中自动引导设密码,所以这步不会漏sudo passwd -d username 清空密码,该账户将无法密码登录(除非配了 SSH 密钥)su - username → 输入密码 → 成功进入即 OK;whoami 应返回用户名真正麻烦的是那些“看起来创建成功但登不进去”的情况——八成卡在没 -m、没 passwd、或 shell 被设成 /sbin/nologin 上。别急着重装系统,先看 getent passwd username 和 sudo cat /etc/shadow | grep username 这两行输出,问题往往一目了然。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9