Linux 账户管理
用户
用户文件 /etc/passwd
该文件所有用户可读,每一行代表一个用户,包含7个字段,分别用:隔开。
# 查看文件内容
cat /etc/passwd;
内容:
root:x:0:0:root:/root:/bin/bash
wuhd:x:1002:1002::/home/wuhd:/bin/bash
说明:
字段1 = root 用户名
字段2 = x 口令,加密存放在 /etc/shadow 文件中
字段3 = 0 用户标识号 UID,0表示root超级管理用户,1-499表示系统标准用户,500之后为普通用户
字段4 = 0 组标识号 GID
字段5 = root 备注
字段6 = /root 宿主目录
字段7 = /bin/bash 命令解释器,默认为 /bin/bash,无法登录则为 /sbin/nologin
密码文件 /etc/shadow
该文件仅root用户可读,每一行代表一个用户,包含9个字段,分别用:隔开。
# 查看文件内容
cat /etc/shadow;
内容:
root:$6$vI9A.gXT$BpwPk43MYSqEa57nxXvABjB7WtF7do20pi87L2u73hExr2GjxxaNhw.PVH598nHGYl1j9Hpq9ECCsy0NaOhP00:17670:0:99999:7:::
wuhd:$6$Ya3wW9S4$O.SJLPiYAa1EA4V9NpIzk73E7MZxMNqr1WNgqLi2r0xXbCJgO2N1T8e00qr9.I1K7pynqmchIoZjHNzBguyfr.:17690:0:99999:7:::
说明:
字段1 = root 用户名
字段2 = $6$开头 加密口令 $6$表示SHA-512,$1$表示MD5,$2$表示Blowfish,$5$表示SHA-256,!!表示密码过期,*表示锁定,空表示免密码
字段3 = 17670 最后修改时间戳
字段4 = 0 多少天后才能修改密码,默认0
字段5 = 99999 多少天后必须修改密码,默认99999 (两百多年以后啊)
字段6 = 7 密码过期前提前7天提醒修改
字段7 = 空 密码过期后多少天后禁用账号
字段8 = 空 多少天后禁用账号
字段9 = 空 预留字段
用户组
组文件 /etc/group
该文件所有用户可读,每一行代表一个组,包含4个字段,分别用:隔开。
一个组可以有多个用户,一个用户也可以属于多个组。
用户归属多组时,登录的组为主组,其他为附加组。
# 查看文件内容
cat /etc/group;
内容:
root:x:0:
wuhd:x:1002:
说明:
字段1 = root 组名
字段2 = x 组口令,加密存放在 /etc/gshadow 文件中
字段3 = 0 组标识号 GID
字段4 = 空 组成员,多个用户名用逗号隔开
组口令文件 /etc/gshadow
该文件仅root用户可读,每一行代表一个组,包含4个字段,分别用:隔开。
# 查看文件内容
cat /etc/gshadow;
内容:
root:::
wuhd:!::
说明:
字段1 = root 组名
字段2 = 空 组口令,加密字符串
字段3 = 空 组管理员账号
字段4 = 空 组成员,多个用户名用逗号隔开
用户管理
添加 useradd
# 创建用户test
useradd test;
# 创建用户test,加入附加组wuhd
useradd -G wuhd test;
# 创建用户test,指定登录目录/www,不创建宿主目录/home/test
useradd -d /www -M test;
修改 usermod
# 修改用户test的名称为test2
usermod -l test2 test;
# 将用户test添加到附加组wuhd
usermod -G wuhd test;
# 修改用户test的宿主目录为/www
usermod -d /www -m test
删除 userdel
# 删除用户test
userdel test;
# 删除用户test以及宿主目录/home/test
userdel -r test;
用户组管理
添加 groupadd
# 创建组test
groupadd test;
修改 groupmod
# 修改组test的名称为wuhd
groupmod -n wuhd test;
删除 groupdel
# 删除组test
groupdel test;
状态命令
当前用户 whoami
# 显示当前用户名称
whoami;
用户身份 id
# 显示当前用户身份
id;
# 显示用户wuhd的身份
id wuhd;
用户所属组 groups
# 显示指定用户所属的组
groups root;
groups wuhd;
口令管理
命令 passwd
# 显示用户wuhd的口令状态信息
passwd -S wuhd;
# 锁定用户wuhd
passwd -l wuhd;
# 解锁用户wuhd
passwd -u wuhd;
# 交互式修改用户wuhd的口令
passwd wuhd;
# 非交互式直接执行修改用户wuhd的口令为123456
echo 123456|passwd --stdin wuhd;
命令 chpasswd
# 非交互式直接执行修改用户wuhd的口令为123456
echo wuhd:123456|chpasswd;
命令 chage
# 查看用户wuhd的口令失效状态
chage -l wuhd;
# 使用户wuhd下次登录时必须修改口令
chage -d 0 wuhd;
# 使用户wuhd的口令在2020-03-01过期
chage -E 2020-03-01 wuhd;
登录管理
全局文件 /etc/login.defs
# 查看文件
cat /etc/login.defs;