1.用户及用户组存在的意义
1)用户存在的意义
系统资源是有限的,如何合理分配系统资源?
在这个问题解决时必须要有两个资源配合–用户和组
(1) 身份accout
(2)授权author
(3) 认证auth
以上就是著名的3A机制,3A机制组成系统中最底层的安全架构
2) 用户组存在意义
用户组是一个逻辑容器
对用户进行归类和统一授权
2.用户及用户组在系统中的存在方式
id <------->名称 必须要记录到文件当中用户才能存在
用户就是/etc/passwd文件中的一行字符
用户组的存在方式就是/etc/group文件中的一行字符
3.用户切换
- su - username ##用户切换
- ##表示切换用户环境
username ##如果root---->commonuser 不需要后者密码
##commonuser---->root 需要密码
##commonuser---->commonuser 需要密码
注意:
在做用户切换时,当使用完毕用户身份需要及时退出
不要在一个shell中反复执行su命令
在一个shell中反复执行su命令会导致环境错乱
4.用户涉及到的系统配置文件
配置文件 | 信息 |
---|---|
/etc/passwd | 用 户 身 份 信 息 用户身份信息 用户身份信息 ( 用 户 名 称 : 用 户 密 码 : 用 户 i d : 用 户 主 组 i d : 用 户 说 明 : 用 户 家 目 录 : 用 户 默 认 s h e l l ) (用户名称:用户密码:用户id:用户主组id:用户说明:用户家目录:用户默认shell) (用户名称:用户密码:用户id:用户主组id:用户说明:用户家目录:用户默认shell) |
/etc/group | 组 身 份 信 息 文 件 组身份信息文件 组身份信息文件 组 名 称 : 组 密 码 : 组 i d : 组 的 附 加 成 员 组名称:组密码:组id:组的附加成员 组名称:组密码:组id:组的附加成员 |
/etc/skel/.* | 用户环境配置文件模板 |
/etc/shaodow | 用户认证信息文件 |
/home/username | 用户家目录 |
/var/spool/mail/username | 用户邮箱文件 |
5.用户和用户组建立及删除
为了验证建立及删除效果,可以使用监控命令:
命令 | 功能 |
---|---|
useradd username | 用户建立 |
useradd -u id username | 建立指定uid的用户 |
注意
##uid理论上的个数有2^16=65535个
##0 表示超级用户
##1-200 系统预留id
##201-999 系统用户
##1000-60000 用户级用户
##/etc/login.defs 记录用户建立的默认规则
命令 | 功能 |
---|---|
useradd -g id username | 建立指定主组id的用户(前提是此主组id存在) |
useradd -G id username | 建立指定附加组id的用户(附加组的id必须存在) |
useradd -d dir username | 指定用户家目录 |
useradd -M username | 建立用户时不建立家目录 |
useradd -c word username | 指定用户说明 |
useradd -s shell username | 指定用户shell |
命令 | 功能 |
---|---|
userdel -r username | 用户删除 -r 删除用户的系统配置文件 |
命令 | 功能 |
---|---|
groupadd groupname | 组建立 |
groupadd -g id groupname | 指定组名称 |
groupdel groupname | 组删除 |
6.用户和用户组的信息管理
命令 | 功能 |
---|---|
usermod -l | 更改用户名称 |
usermod-u | 更改用户id |
usermod -g | 更改主组id |
usermod -G | 更改用户附加组身份 |
usermod aG | 添加用户附加组身份 |
usermod -c | 更改用户说明 |
usermod -d | 更改家目录指向 |
usermod -md | 更改家目录指向同时更改家目录名称 |
usermod -s | 更改默认shell |
usermod -L | 冻结账号 |
usermod -U | 解锁 |
命令 | 功能 |
---|---|
groupmod -g | 更改用户组id |
7.用户认证信息管理
(1) 用户名称
命令 | 功能 |
---|---|
passwd -S username | 查看密码状态 |
(2) 用户加密字符
命令 | 功能 |
---|---|
passwd | 普通用户更改密码 |
注意 只有root用户可以使用”echo 123 | passwd --stdin qx来修改密码
(2) 冻结认证
命令 | 功能 |
---|---|
passwd -l username | 冻结账号认证 |
passwd -u username | 解冻账号认证 |
(3) 密码删除
命令 | 功能 |
---|---|
passwd -d username | 密码删除 |
(4) 密码使用天数
注意: 密码最短有效期的计算方法是:从1970年1月1日为起始计算的
命令 | 功能 |
---|---|
passwd -e username | 修改默认使用时间 |
chage -d 0 username | 账号必须更改密码才能登录系统 |
(5) 密码最短有效期
命令 | 功能 |
---|---|
passwd -n day username | 用户在day天内不能改密码 |
chage -m day username | 用户在day天内不能改密码 |
(6) 密码最长有效期
命令 | 功能 |
---|---|
passwd -x day username | 用户必须在day天内更改密码,否则会被冻结 |
chage -M day username | 用户必须在day天内更改密码,否则会被冻结 |
(7) 密码过期警告
命令 | 功能 |
---|---|
passwd -w day username | 账号过期前警告时间 |
chage -W day username | 账号过期前警告时间 |
(8) 认证非活跃天数
命令 | 功能 |
---|---|
passwd -i day username | 账号最大时间超过后还能用多久 |
chage -I day username | 账号最大时间超过后还能用多久 |
(9) 账号认证到期时间
命令 | 功能 |
---|---|
chage -E ‘’XXXX-XX-XX“ | 到XXXX-XX-XX这天账号会被冻结 |
8. 用户权力下放
权力下放的原因:
##在系统中普通用户是无法执行管理命令的
##如果需要普通用户执行系统管理动作,那么需要root用户来进行授权
##普通用户授权方式:sudo
作用:
可以使普通用户使用指定的用户身份运行命令
授权方法:
- visudousername ##此命令的作用是编辑/etc/sudoers并提供语法检测
注意:
在文件的100行左右时代码的规范性