/etc/passwd
保存用户的账号基本信息
每一行对应一个用户记录
root:x:0:0:root:/root:/bin/bash
字段意义
1.用户名
2.密码占位符“x”
3.UID(UID=0 就是超级用户root)
4.所属基本组(主要组)的GID
5.用户全名
6.宿主(家)目录
7.登陆shell信息 (不能登录的shell: /sbin/nologin /bin/false)
/etc/shadow
保存密码字串、密码有效期等信息
u1:$6$d5W98FYW$M30lNIzPb45nI2b5OxVnKa8e1Z/dkPNlJjZB813u69/zrOE96newoMVYzGdn8R25C5x37AIDuigjZwZdKDU/p0:17848:0:99999:7:::
字段意义:
1.用户账号名称
2.加密的密码字串信息
加密算法 1 MD5 2a Blowfish 5 SHA-256 6 SHA-512
3.上次修改密码的时间
4.最短有效天数,默认为0
5.密码的最长有效天数,默认值为99999(永远有效)
6. 提前多少天警告用户口令将过期,默认值为7
7.在密码过期之后多少天禁用此用户
8.帐号失效时间,默认值为空
9.保留字段(未使用)
/etc/group
root:x:0:
1.组账号名
3.GID
4.组成员名 (用户本身不显示)
用户至少属于一个组(主要组)也可以属于多个组(次要组)
默认:创建用户时,会自动创建一个组,组名和用户名一样,这个组就是这个用户的主要组
/etc/skel/*
新建用户帐号时,将此文件里所有内容复制到用户宿主目录中
主要控制用户初始配置文件
.bash_profile:用户每次登录时执行
.bashrc:每次进入新的Bash环境时执行
.bash_logout:用户每次退出登录时执行
/etc/profile 所有用户每次登录时会执行
/etc/gshadow
保存组账号的密码信息(应用极少)
/etc/login.defs
对账户初始的属性设置
设置普通用户的UID和GID范围等
命令
useradd 添加用户
useradd [选项]... 用户名
-u 指定UID
-d 指定宿主目录 默认/home/用户名
-e 指定账号失效时间 -e 2018-12-12
-g 指定主要组GID
-G 指定次要组
-M 不建立宿主目录
-s 指定用户登录shell /bin/bash /bin/sh 不能登录的shell等
useradd命令在后台到底做了哪些工作(哪些文件发生改变)
/etc/shadow /etc/passwd /etc/group /home /etc/skel/* /var/spool/mail
passwd 管理密码
passwd [选项]... 用户名
-d 清空用户密码,使之无需密码即可登录(本地登录)
-l 锁定用户账号
-u 解锁
-S 查看用户账号状态(是否被锁定)
-n 设置密码的最短有效天数 (对应/etc/passwd 第4字段)
-x 设置密码的最长有效天数 (对应/etc/passwd 第5字段)
--stdin (非交互设置密码)接受标准输入作为密码 echo "123" | passwd --stdin u2 |(管道)
root用户可以修改所有用户密码,不要求复杂性
普通用户只能修改自己的密码,要求复杂性
userdel
删除用户
userdel [-r] 用户名
-r 连同宿主目录一并删除
usermod 修改用户参数
usermod [选项]... 用户名
-l 更改账户名称
-L 锁定用户(破坏密码段)
-U 解锁
-c 注释 /etc/passwd 第5块
-u、-d、-e、-g、-G、-s命令与useradd相同
更改用户主目录/home/user1为/home/user11 -m选项仅与-d(或——home)选项组合有效
usermod -d /opt/user11 -m user1
chsh 更改shell
chsh [ -s shell ] [ --list-shells ] [ --help ] [ --version [ username ]
chsh -l 列出所有shell
chsh -s 更改shell
chsh -u 帮助--help
chsh -v 版本
chage
chage [选项]... 用户名
-l 列出密码时效的具体信息
-d 0 用户下次登录时 强制改密码
组
groupadd 添加组
groupadd [-g GID] 组帐号名
groupdel 删除组
groudel 组帐号名
groupmod
修改组名或组id groupmod [选项]... 组帐号名
-n 修改组名
-g 修改组id
gpasswd
设置组帐号密码(极少用)、添加/删除组成员(即用户)
-a 添加
-d 删除
-M 重置组成员
查询
id id u1
finger
chfn 修改用户的备注信息,/etc/passwd第5字段 usermod -c
who w users
groups 查询用户所属的组
验证1:
将/etc/passwd的字段2删除
用户的密码为空
登录时不用输入密码
本地登录、远程登录,哪一种可以用空密码登录? (本地登录)
验证2:
将/etc/shadow的字段2删除
是不是空密码? (是,只能本地登录)