文章目录
linux中的用户及权限管理
一、用户及用户组管理
1.操作系统为什么要有用户的区分
- 为了保证每个用户文件的隐私性
- 方便于系统使用权限的管理(权限最小化)
一般情况下,企业中的服务器管理,每个人使用一个普通账户
2.用户的分类
- 超级管理员:root。对操作系统有最大管理权限。uid:0
- 普通用户:权限受限的,只可以针对自己的家目录有最大的管理权限。uid 1000以后
- 虚拟用户(系统用户):专用于进程运行的用户,不允许登录系统,没有家目录。uid 1-999
3.用户与用户组的关系
- 用户:一个用户可以属于多个用户组
主组:用户所属的管理组
附加组:用户额外加入的组 - 用户组:用户组包含多个用户
- 用户自动继承用户组的管理权限
二、相关的文件
1./etc/passwd
作用:用于管理系统中用户的定义
cat /etc/passwd
用户名 | 用于存放密码,已弃用 | 用户的唯一识别号uid | 用户的所属组的唯一识别号gid | 描述信息 | 用户的家目录位置 | 用户登录系统的时候提供的命令解析器 |
---|---|---|---|---|---|---|
root | x | 0 | 0 | root | /root | /bin/bash |
bin | x | 1 | 1 | bin | /bin | /sbin/nologin(不允许登录操作系统,常用于虚拟用户) |
常见的命令解释器
shell命令
/bin/bash
/bin/sh
/sbin/nologin #禁止登录,用于虚拟用户
2./etc/shadow
作用:存放用户的密码信息
cat /etc/shadow
用户名 | 存放用户密码(加密的密码) | 最近一次修改密码的时间 | 当前用户密码的最少有效期可用多少天 | 密码最长有效期 | 密码即将失效前多少天通知 | 密码到期以后多少天,系统强制变更用户密码 | 记录密码失效了多长时间 | 暂未使用 |
---|---|---|---|---|---|---|---|---|
root | 19921 | 0 | 99999 | 7 | ||||
bin | * | 18353 | 0 | 99999 | 7 | |||
* 不允许使用密码登陆 !密码为空 | 以天为单位计算的,从1970年1月1日到修改密码那天,共计的天数 |
3./etc/group
作用:存放系统用户组的信息
cat /etc/group
用户组名 | 用户组密码(已弃用) | gid | 用户组成员 |
---|---|---|---|
root | x | 0 |
4./etc/gshadow
作用:存放用户组的密码信息
三、用户的操作管理
1.创建用户操作
useradd {参数} 用户名
-u #指定uid号码
-m #创建家目录
-M #不创建家目录
-s #创建用户指定用户的命令解释器
-g #指定用户所属的组
-G #为指定用户添加附加组
-c #添加用户描述信息
# 创建mysql的虚拟用户
useradd -M -s /sbin/nologin mysql
2.修改已存在用户
usermod 用户名
其他参数基本和useradd一样
3.删除用户
userdel 用户名
默认不删除用户的家目录和邮箱文件
-r 彻底删除
# 家目录
/home/
# 邮箱文件路径
/var/spool/mail/
4.查看用户
id 用户名
四、用户的密码管理
1.交互式设密码
passwd 用户名
root用户可以通过命令对所有用户设密码
普通用户只可以通过该命令设置自己的密码
2.非交互式设密码
echo '密码'|passwd --stdin 用户名 #只有root能执行
安全性低,可能导致密码泄露
# 随机密码生成器pwgen
# 安装 yum install pwgen -y
pwgen -n #指定长度
-c #指定输出数量
-A #不包含大写字母
-B #不包含歧义字符
-y #包含特殊符号
# 为用户设置随机密码的脚本
vim suiji.sh
#!/bin/bash
pwgen -n 10 -y -c 1 >pass.txt
cat pass.txt|passwd --stdin 用户名
保存退出
执行脚本 sh suiji.sh
3.批量设置密码
# 准备密码文件
# 密码文件内容
用户名1:密码
用户名2:密码
用户名3:密码
chpasswd <密码文件
cat /etc/shadow
用户名1:密码
用户名2:密码
用户名3:密码
4.用户的切换
su 用户名 #默认切换到root
su - 用户名
开启全新终端,重新加载/etc/profile内容,临时环境变量不生效
不加-
继承了原用户的终端,不重新加载/etc/profile内容,继承临时环境变量
ctrl + d 回退到之前用户
五、用户组的管理
1.用户组的操作
groupadd 组名 #创建
groupdel 组名 #删除
groupmod 组名 #修改
-g gid号码
2.针对用户组的成员管理
方式一:通过修改用户的属性管理其附加组
- 默认一个用户只能有一个附加组
方式二:
groupmems #组成员管理
-g 组名称 #指定组
-l #显示组成员,只显示通过groupmems管理的的成员
-a 用户名 #添加成员
-d 用户名 #删除指定成员
-p #清空组成员
六、linux系统权限管理
ll 查看文件属性
-rw-r–r– | 1 | root | root | 124 | Jul 17 18:46 | 111.txt |
---|---|---|---|---|---|---|
文件权限 | 文件硬连接数 | 文件所有者信息 | 文件所属组的信息 | 文件大小 | 时间 | 文件名称 |
1.用户和用户组的授权管理
chown
语法格式:
chown 用户名.用户组 文件/目录
chown 用户名:用户组 文件/目录
chown test.test dms
chown test:test dms
# 省略写法,组会根据当前授权的用户所属主组授权
chown test: dms
-R 递归授权。对目录授权时,同时授权子目录及子文件
# 文件所有者,所属组,其他人对文件操作的区别
一个用户属于某组,自动继承该组的权限
2.权限管理
d rwx r-x r-x
第一列:文件或目录类型
- #普通文件
d directory #目录
l link #软连接
b block #存储块
c character #设备文件
第二列:文件所有者的管理权限
第三列:文件所属组的管理权限
第四列:其他人权限
r read #读取权限
w write #写入权限
x execute #执行权限
3.管理权限
chmod u,g,o 文件名
u user #文件所有者
g groups #所属组
o others #其他人
a all #所有权限位
-R #递归授权
方式一:加减法
chmod u+x,g-r,o+wx 1.txt
方式二:赋值法
chmod u=rw,g=w,o=rx 1.txt
方式三:通过数值修改权限
r 4
w 2
x 1
7=rwx,6=rw-,5=r-x,3=-wx