在linux系统中,创建用户和设置密码是系统管理的基础操作,对应的核心命令分别是useradd和passwd,同时还有chpasswd可用于批量设置密码,不同命令适配不同的使用场景。

创建用户的命令:useradd
useradd是用于创建新用户账户的基础命令,执行后会在系统用户配置文件/etc/passwd和/etc/shadow中添加对应的用户记录,默认还会创建用户的家目录。
常用参数说明
- -m:自动创建用户的家目录,路径默认是
/home/用户名 - -d:指定用户的家目录路径,需要配合-m参数使用才会自动创建该目录
- -s:指定用户的登录shell,比如
/bin/bash或者/sbin/nologin - -g:指定用户的主组,需要提前存在对应的组
- -G:指定用户的附加组,多个组用逗号分隔
基础使用示例
创建一个名为testuser的用户,同时自动创建家目录,登录shell为bash:
# 创建用户 sudo useradd -m -s /bin/bash testuser # 查看用户是否创建成功,查看/etc/passwd文件中的记录 grep testuser /etc/passwd
上述命令执行后,会输出类似testuser:x:1001:1001::/home/testuser:/bin/bash的记录,说明用户创建成功。
设置用户密码的命令:passwd
passwd命令用于修改用户的密码,既可以修改当前登录用户的密码,也可以修改指定用户的密码,需要root权限才能修改其他用户的密码。
单用户密码设置示例
为刚才创建的testuser设置密码:
sudo passwd testuser # 执行后会提示输入新密码,再次确认新密码 # 输入密码时终端不会显示任何字符,属于正常情况
如果提示passwd: password updated successfully,说明密码设置成功。
免交互设置密码
如果需要脚本中自动设置密码,可以使用echo结合管道的方式:
# 将密码设置为123456,注意实际生产环境不要使用弱密码 echo "testuser:123456" | sudo chpasswd
这种方式不需要手动输入密码,适合自动化脚本场景。
批量创建用户并设置密码
如果需要一次性创建多个用户并设置密码,可以结合useradd和chpasswd命令实现:
# 批量创建用户,假设要创建user1到user3三个用户
for i in {1..3}; do
sudo useradd -m -s /bin/bash user$i
done
# 批量设置密码,密码统一为user123
for i in {1..3}; do
echo "user$i:user123" | sudo chpasswd
done
注意事项
- 创建用户和修改密码都需要root权限,普通用户需要加sudo执行
- 密码建议设置足够复杂,包含大小写字母、数字和特殊字符,避免使用弱密码
- 如果创建用户时没有加-m参数,后续需要手动创建家目录并修改权限,操作相对繁琐
- 使用
userdel -r 用户名可以删除用户同时删除其家目录,避免残留无用文件
所有用户密码相关的敏感信息都存储在/etc/shadow文件中,该文件只有root用户有读取权限,不要随意修改文件内容,避免导致用户无法登录。
useraddpasswdlinux_user_managementchpasswd修改时间:2026-06-18 19:45:32