在Linux系统中,创建和管理用户账户是系统管理的基础操作,正确创建账户并设置安全密码对系统安全至关重要,Linux系统提供了多种命令行工具来完成账户创建和密码管理,其中最常用的是useradd
和adduser
命令,以及passwd
命令用于设置或修改密码,本文将详细介绍Linux系统中创建账户和密码的完整流程,包括常用参数、密码策略设置及账户管理技巧。
创建用户账户的基本方法
Linux系统中创建用户账户主要有两种命令:useradd
(低级命令,参数灵活)和adduser
(高级命令,交互式友好),两者功能一致,但adduser
在Debian/Ubuntu等发行版中会以交互方式引导用户输入账户信息,而useradd
需要通过参数指定详细配置。
使用useradd
命令创建账户
useradd
是Linux标准工具,位于/usr/sbin/
目录下,需root权限或sudo权限执行,其基本语法为:useradd [选项] 用户名
常用参数说明:
| 参数 | 作用 | 示例 |
|——|——|——|
| -c
| 添加账户注释(如用户全名) | useradd -c "Zhang San" zhangsan
|
| -d
| 指定家目录路径(默认为/home/用户名
) | useradd -d /data/zhangsan zhangsan
|
| -m
| 自动创建家目录(若未指定-d
,则默认创建/home/用户名
) | useradd -m zhangsan
|
| -s
| 指定登录Shell(默认为/bin/sh
,推荐/bin/bash
) | useradd -s /bin/bash zhangsan
|
| -u
| 指定UID(用户ID,默认从1000递增) | useradd -u 2000 zhangsan
|
| -g
| 指定主GID(组ID,默认与用户名同名) | useradd -g users zhangsan
|
| -G
| 指定附加组(多个组用逗号分隔) | useradd -G sudo,users zhangsan
|
| -r
| 创建系统账户(无家目录,UID小于1000) | useradd -r systemd-user
|
示例:创建一个名为zhangsan
的普通用户,注释为”Zhang San”,家目录为/home/zhangsan
,Shell为/bin/bash
,并加入sudo
和users
组:
sudo useradd -c "Zhang San" -m -s /bin/bash -G sudo,users zhangsan
使用adduser
命令创建账户
adduser
是useradd
的封装工具,在Debian/Ubuntu等发行版中默认安装,支持交互式配置,执行后会提示输入密码、全名等信息,适合新手使用:
sudo adduser zhangsan
执行后会依次提示:
- 设置密码(需输入两次)
- 输入用户全名(可选)
- 输入房间号、电话等信息(可选)
- 确认信息(输入Y/N)
设置和修改用户密码
创建账户后,必须为用户设置密码才能登录,Linux系统使用passwd
命令管理密码,普通用户只能修改自己的密码,root用户可修改所有用户密码。
为新用户设置初始密码
创建账户后,root用户可直接为zhangsan
设置密码:
sudo passwd zhangsan
根据提示输入两次密码(输入时不会显示字符),设置成功后用户即可登录。
普通用户修改自己的密码
用户登录后,通过以下命令修改自己的密码:
passwd
系统会要求输入当前密码,验证后输入新密码(需符合密码策略,如长度、复杂度)。
root用户强制修改其他用户密码
root用户可直接修改任意用户密码,无需原密码:
sudo passwd lisi # 修改lisi的密码,无需输入lisi的当前密码
密码策略管理
为增强系统安全性,可通过chage
命令设置密码策略,如密码有效期、警告天数、过期宽限时间等。
chage
命令常用参数
参数 | 作用 |
---|---|
-M |
密码有效期(天,0表示永不过期) |
-m |
最短使用天数(0表示可随时修改) |
-W |
密码过期前警告天数 |
-I |
密码过期后宽限天数(0表示立即失效) |
-d |
上次密码修改日期(0表示强制下次登录修改密码) |
示例:
- 设置
zhangsan
的密码每90天过期,过期前7天警告,过期后3天锁定:sudo chage -M 90 -W 7 -I 3 zhangsan
- 强制
lisi
下次登录时修改密码:sudo chage -d 0 lisi
查看密码策略:
sudo chage -l zhangsan # 显示zhangsan的密码策略详情
账户的其他管理操作
查看用户信息
id zhangsan
:显示用户的UID、GID及所属组finger zhangsan
:显示用户详细信息(需安装finger
工具)cat /etc/passwd | grep zhangsan
:查看账户配置行(格式:用户名:密码:UID:GID:注释:家目录:Shell
)
修改账户属性
使用usermod
命令可修改已创建账户的属性,如家目录、Shell、所属组等:
sudo usermod -s /bin/zsh zhangsan # 修改登录Shell为zsh sudo usermod -d /new/home zhangsan -m # 修改家目录并迁移数据 sudo usermod -aG docker zhangsan # 将zhangsan加入docker组(-a表示追加,不覆盖原有组)
锁定/解锁账户
- 锁账户:
sudo usermod -L zhangsan
(无法登录,但可修改密码) - 解锁账户:
sudo usermod -U zhangsan
删除账户
- 仅删除账户,保留家目录:
sudo userdel zhangsan
- 删除账户及家目录:
sudo userdel -r zhangsan
相关问答FAQs
Q1:忘记root密码时如何重置?
A1:若忘记root密码,可通过单用户模式重置(以GRUB引导为例):
- 重启系统,在GRUB启动界面按
e
进入编辑模式; - 找到以
linux
或linux16
开头的行,在行尾添加init=/bin/bash
(忽略错误检查); - 按
Ctrl+X
启动,进入单用户模式(无需密码); - 执行
mount -o remount,rw /
重新挂载根目录为读写模式; - 使用
passwd
修改root密码,完成后执行exec /sbin/init
重启系统。
Q2:如何批量创建多个用户?
A2:可通过newusers
命令批量创建用户(需准备包含用户信息的文本文件,格式为用户名:密码:UID:GID:注释:家目录:Shell
)。
步骤:
- 创建用户列表文件
users.txt
,user1:Passw0rd:2001:2001:User One:/home/user1:/bin/bash user2:Passw0rd:2002:2002:User Two:/home/user2:/bin/bash
- 执行
sudo newusers < users.txt
批量创建用户; - 使用
sudo chpasswd < passwd.txt
可批量修改密码(文件格式为用户名:密码
)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/37955.html