一、用户及用户组存在的意义
1.用户存在的意义:
- 系统资源有限,合理的分配资源,控制单个用户对系统资源的使用
- 保护用户资源的安全;(3A机制组成了系统中最底层的安全架构)
1.身份 account
2.授权 authhor
3.认证 auth
2.用户组存在的意义
用户组是一个逻辑容器,对用户进行归类和统一授权
二、用户及用户组在系统中的存在方式
id <-------> 名称 必须要记录到文件当中用户才能存在
用户就是/etc/passwd
文件中的一行字符
用户组存在的方式就是/etc/group
文件中的一行字符
三、用户切换
1.用户查看
`whoami` ##查看当前用户
id ##查看用户id 信息
id +username ##查看用户id信息
-u username ##查看用户的用户id
-g username ##查看用户主组id
-G username ##查看用户所有的组的id
-n username ##显示名称
-a username ##显示所有id信息
用户id范围(2的16次方个):0-65535;ID设定规则都被记录在/etc/login.defs
0: ##Linux超级用户ID
1-999: ##Liunx系统自用ID
1000-65535: ##用户级ID
2.用户切换
su username
##只切换用户身份
su - username
##切换用户身份及环境
超级用户切换至其他用户不需要密码,其他用户切换用户环境时都要输入密码
注意:在做用户切换时,使用完用户身份后应该及时退出,不能在一个shell中反复执行su命令,会导致环境错乱
四、用户涉及到的系统配置文件
/etc/passwd
##用户身份信息文件
erqian | x | 10001 | 1000 | erqian | /home/erqian | /bin/bash |
用户名称 | 用户密码 | 用户id | 用户主组id | 用户说明 | 用户家目录 | 用户默认shell |
/etc/group
##组身份信息文件
#组名称:组密码:组id:组的附加成员
erqian | x | 1000 | |
组名称 | 组密码 | 组id | 组的附加成员 |
/etc/skel/.*
##用户环境配置文件模板
/etc/shadow
##用户认证信息文件
/home/username
##用户家目录
/var/spool/mail/username
##用户邮箱文件
五、用户和用户组的建立及删除
监控用户建立的命令,用于直观的感受用户只是文件中的一行字符
watch -n 1 “tail -n 4 /etc/passwd /etc/group; ;ls -l”
命令 | 参数 | 指定内容 | 指定用户 | 作用 |
---|---|---|---|---|
useradd | username | ##用户建立 | ||
-u | id | username | ##指定UID;uid范围:2**16=0——65535 | |
-g | id | username | ##指定主组id | |
-G | id | username | ##指定附加组id | |
-d | /dir | username | ##指定用户家目录 | |
-c | word | username | ##指定用户说明 | |
-s | shell | username | ##指定用shell | |
-M | username | #3建立用户时不建立家目录 | ||
userdel | username | ##删除指定用户 | ||
-r | username ##用户删除, -r 删除用户的系统配置文件 | |||
groupadd | groupname | ##组建立 | ||
-g | id | groupname | ##指定组ID | |
groupdel | groupname | ##组删除 |
六、用户和用户组的信息管理
命令 | 参数 | 指定内容 | 指定用户 | 作用 |
---|---|---|---|---|
usermod | ||||
-l | # 更改用户名称 | |||
-u | id | username | #更改用户id | |
-g | #更改主组id | |||
-G | #更改用户附加组身份 | |||
-aG | #添加用户附加组身份-c #更改用户说明 | |||
-d | #更改家目录指向 | |||
-md | #更改家目录指向同时更改家目录名称 | |||
-s | #更改默认shell | |||
-L | #冻结账号 | |||
-U | #解锁 | |||
groupmod | -g |
七、用户认证信息管理
/etc/shadow ##认证信息存放路径
文件内容说明:用户名称:用户密码的加密字符:用户密码最后一次被修改时间:密码最短有效期:密码最长有效期:密码过期前警告期:账号非活跃期:账号到期时间:用户自定义(未使用)
1.用户名称
passwd -S username ##查看密码状态
2.用户加密字符
1)更改密码
passwd username
##修改普通用户密码
echo 123 | passwd --stdin username
##只有root用户才可以执行
2)冻结认证
passwd -l username ##冻结账号认证
passwd -u username ##解锁账号认证
3)密码删除
passwd -d username ##删除后用户登录不需要密码
4)密码使用天数
时间从1979年1月1日算至今为止的时间
passwd -e username ##修改默认使用时间为0
psswd -d 0 username ##账号登录时强制修改密码才可登录
5)密码最短有效期
passwd -n 1 username ##username在1天内不能改密码
chage -m 1username
6)密码最长有效期
passwd -x 40 username ##40天内username用户必须更新密码否则会被冻结
chage -M 30username
7)密码过期警告
passwd -w 2 username##账号过期前警告时间
chage -W 1 username
8)认证非活跃天数
passwd -i 2 username ##账号认证最大时间超过后还能用多久
chage -I 1 username
9)账号认证到期时间
chage -E “2020-05-11” ##到2020-5-11这天账号会被冻结
#未启用功能
八、权利下放
1.用户权力下放
-
在系统中普通用户时无法执行系统管理命令的
-
如果需要普通用户执行系统管理动作那么需要
-
root用户来进行授权
-
普通用户授权方式 “sudo”
-
作用:可以使普通用户使用指定的用户身份呢运行命令
2.授权方法:
visudo
##此命令作用是编辑/etc/sudoers并提供语法检测
在文件的100行左右 ##代码规范性
username hostname=(newusername) [NOPASSWD:] /command, /command1
用户名 主机名 以什么身份 免密执行 权限1 权限2
#erqian用户 在localhost.localdomain主机=(用超级用户身份) 执行useradd命令,
查看当前主机名称:hostname
普通用户执行下放的命令时:sudo useradd username
erqian localhost.localdomain=(root) /usr/sbin/useradd
#erqian用户 在localhost.localdomain 使用超级用户身份 免密 执行useradd 和 userdel
erqian localhost.localdomain=(root) NOPASSWD:/usr/sbin/useradd,/usr/sbin/userdel
查看所要执行的命令的绝对路径:which useradd