一. 用户管理
在我们系统中底层安全架构是由3A机制组成,即为身份(account)、授权(author)、认证(auther)。在linux中一般将系统中可读写的身份分为文件拥有者(owner),用户组(group),其他人(other)三种身份。由于Linux系统是一个多人多任务的系统,因此常常会有多人同时使用这台主机来进行操作,考虑到每个人的隐私和喜好设置了文件拥有者的角色,为了进行协同工作设置了用户组。还有一个特殊的身份,那就是系统的root用户,在linux中root用户就是“万能的天神”。
从更加深入的角度来进行理解,用户存在的意义主要是进行资源分配,在linux中可以通过查看/etc/passwd来查看用户信息,用户在系统中的唯一标识是UID。而用户组是一个逻辑容器,用来对用户进行归类和统一授权,每个用户的用户组分为初始组(不能由自身决定)和附加组(可由自身决定)两大类。
useradd命令 建立用户,在linux中,UID(16位二进制表示)为0表示为超级用户,UID为1-200 为系统预留ID,UID为201-999的用户为系统用户,UID为1000-65535为用户级用户。
useradd username ##建立用户
useradd -u id username ##建立指定uid的用户
useradd -g id username ##建立指定主组id的用户(此时该主组必须存在)
useradd -G id username ##建立指定附加组id的用户
useradd -d dir username ##建立指定用户家目录的用户
useradd -M username ##建立用户时不建立家目录
useradd -c word username ##建立指定用户说明的用户
useradd -s shell username ##建立用指定shell的用户
userdel命令 删除用户
userdel -r username ##用户删除,删除身份且删除系统配置文件
userdel username ##用户删除,只删除身份,未删除系统配置文件
groupadd命令 建立用户组
groupadd groupname ##建立用户组
groupadd -g id groupname ##建立指定组名称的用户组
groupdel命令 删除用户组
groupdel groupname ##删除组
usermod命令 修改用户信息
usermod -l ##更改用户名称
usermod -u ##更改用户id
usermod -g ##更改主组id
usermod -G ##更改用户附加组身份,会删除此前的所有附加组身份
(如果要删除附加组身份,则可以添加“”空符号串)
usermod -aG ##添加用户附加组身份
usermod -c ##更改用户说明
(删除用户说明,则添加“”空符号串)
usermod -d ##更改家目录指向
(没有改变家目录名称,此时的家目录指向不一定存在)
usermod -md ##更改家目录指向和家目录名称
(使用时保证家目录指向与名称一致)
usermod -s ##更改默认shell;/sbin/nologin 则变成高级用户
usermod -L ##冻结账号 状态为!+密码的加密显示
usermod -U ##解锁 解锁时账号必须有密码才能解锁
二. 用户涉及到的系统配置文件
/etc/passwd | 用户身份信息文件 格式为:用户名称:用户密码:用户id:用户主组id:用户说明:用户家目录 |
/home/username | 用户家目录 |
/etc/group | 组身份信息文件 格式为:组名称:组密码:组id:组的附加成员 |
/etc/skel | 用户环境配置文件模板 |
/etc/shadow | 用户认证信息文件 每行格式为:用户名称:用户密码的加密字符:用户密码最后一次被修改的时间(从1970年1月1日开始算起):密码最短有效期;密码最长有效期;密码过期前警告期:账号非活跃期(强制改密码):账号到期时间(从1970年1月1日开始算起):用户自定义(未使用) |
/var/spool/mail/username | 用户邮箱文件 |
用户认证信息管理命令
passwd命令
passwd -S lee ##查看密码状态
(LK---冻结状态,加密方式为SHA512对称加密;PS---解锁状态)
passwd lee ##更改密码
passwd ##普通正在操作的用户密码
passwd -l lee ##冻结账号认证(有密码时才能锁住)
passwd -u lee ##解冻账号认证
passwd -d lee ##删除密码,有密码时才能删除
passwd -e lee ##修改默认使用时间为0(不可加数字)
passwd -n 1 lee ##lee在一天内不能改密码
passwd -x 40 lee ##40天内lee必须更新密码都则会被冻结
passwd -w 2 lee ##账号过期警告时间
passwd -i 2 lee ##账号认证最大时间超过后还能用多久(-1天即0)
chage命令 改变用户某些信息
chage -d 0 lee ##账号必须改密码才能登录系统
chage -m 1 lee ##lee在一天内不能改密码
chage -M 30 lee ##30天内lee必须更新密码都则会被冻结
chage -W 1 lee ##账号过期警告时间
chage -I 1 lee ##账号认证最大时间超过后还能用多久(-1天即0)
chage -E '2020-05-22" ##账号到2020-05-22这天账号会被冻结(形式为1970-1-1算起的第n天)
做个实验练习一下吧
1、建立用户组shengchan,caiwu,jishu并满足以下要求:
*shengchan组id为8000
*caiwu组id为8001
*jishu组id为8002
2、建立westoslee,lee等用户并完成以下要求:
*westoslee用户的附加组为shengchan和caiwu
*lee的主组为caiwu,附加组为jishu,lee的uid和gid必须一致
3、
*以上用户密码均为westoslee,并要求用户首次登录时强制修改密码
*设定以上用户密码必须在30天内进行修改,并在过期前2天发出警告