用户账号文件
配置文件
/etc/passwd:用于保存用户
输出如下:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
每一行代表一个用户,各字段以冒号分隔,分别为用户名、密码占位符、UID、GID、用户描述、宿主目录、登录 Shell。
/etc/shadow:用于保存用户的密码、账号有效期等信息。
示例:由于 /etc/shadow 文件只有 root 用户可访问,使用 sudo 查看该文件内容:
sudo cat /etc/shadow
输出示例:
root:$6$Lx87G5...$R8723...:18607:0:99999:7:::
daemon:*:18234:0:99999:7:::
bin:*:18234:0:99999:7:::
各字段同样以冒号分隔,分别为用户名、加密密码、最后一次修改密码的日期、密码最短使用期限、密码最长使用期限、密码到期前的警告天数、密码过期后的宽限天数、账号失效日期、保留字段。
添加、修改、删除用户账号
添加用户账号
格式:useradd [选项] 用户名
选项及示例:
-u:指定用户的 UID,要求该 UID 未被其他用户使用。
示例:创建一个名为 testuser 的用户,指定 UID 为 1002。
useradd -u 1002 testuser
-d:指定用户的宿主目录位置 (当与 -M 选项一起使用时,不生效)。
示例:创建一个名为 newuser 的用户,指定其宿主目录为 /home/newuser_dir。
useradd -d /home/newuser_dir newuser
-e:指定用户的账户失效时间,可使用 YYYY - MM - DD 的日期格式。
示例:创建一个名为 tempuser 的用户,设置其账户在 2025 - 12 - 31 失效。
useradd -e 2025-12-31 tempuser
-g:指定用户的基本组名 (或使用 GID)。
示例:创建一个名为 groupuser 的用户,指定其基本组为 users。
useradd -g users groupuser
-G:指定用户的附加组名 (或使用 GID)。
示例:创建一个名为 extrauser 的用户,将其添加到 adm 和 wheel 附加组。
useradd -G adm,wheel extrauser
M:不建立宿主目录,即使 /etc/login.defs 系统配置中已设定要建立宿主目录。
示例:创建一个名为 nohomediruser 的用户,不创建其宿主目录。
useradd -M nohomediruser
-s:指定用户的登录 Shell。
示例:创建一个名为 cshuser 的用户,指定其登录 Shell 为 /bin/csh。
useradd -s /bin/csh cshuser
删除用户账号
格式:userdel [用户名]
选项及示例:
-r:同时删除宿主目录。
示例:删除名为 olduser 的用户,并同时删除其宿主目录。
userdel -r olduser
用户账号设置密码、锁定、解锁
格式:passwd [选项] [用户名]
选项及示例:
空为设置密码:
示例:为 testuser 设置密码,执行命令后会提示输入新密码和确认密码。
passwd testuser
-d:清空指定用户的密码,仅使用用户名即可登录系统。
示例:清空 emptypassuser 的密码。
passwd -d emptypassuser
-l:锁定用户账号。
示例:锁定 lockeduser 的账号。
passwd -l lockeduser
-S:查看用户账号的状态 (是否被锁定)。
示例:查看 checkuser 的账号状态。
passwd -S checkuser
-u:解锁用户账号。
示例:解锁 unlockeduser 的账号。
passwd -u unlockeduser
修改用户账号属性
格式:usermod [选项] [用户名]
选项及示例:
-u:修改用户的 UID。
示例:将 changeuiduser 的 UID 修改为 1003。
usermod -u 1003 changeuiduser
d:修改用户的宿主目录位置。
示例:将 changediruser 的宿主目录修改为 /home/new_dir
usermod -d /home/new_dir changediruser
-e:修改用户的账户失效时间,可使用 YYYY - MM - DD 的日期格式。
示例:将 changeexpireuser 的账户失效时间修改为 2026 - 06 - 01。
usermod -e 2026-06-01 changeexpireuser
-g:修改用户的基本组名 (或使用 GID)。
示例:将 changegroupuser 的基本组修改为 staff。
usermod -g staff changegroupuser
G:修改用户的附加组名 (或使用 GID)。
示例:将 changeextrauser 的附加组修改为 video 和 audio
usermod -G video,audio changeextrauser
-s:指定用户的登录 Shell。
示例:将 changeshelluser 的登录 Shell 修改为 /bin/tcsh。
usermod -s /bin/tcsh changeshelluser
l:更改用户账号的登录名称 (Login Name)。
示例:将 oldloginname 用户的登录名称改为 newloginname。
usermod -l newloginname oldloginname
-L:锁定用户账户。
示例:锁定 lockagainuser 的账户。
usermod -L lockagainuser
-U:解锁用户账号。
示例:解锁 unlockagainuser 的账号。
usermod -U unlockagainuser