文章目录
linux权限管理及定时任务
一、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
二、不同的权限验证流程
![image-20240723181006509](https://img-blog.csdnimg.cn/img_convert/f6f07ba6cc9c4dc4b1d6ced0ad12ceec.png)
1.目录权限限制
r:前提需要具备执行权限,限制了查看目录中子目录和子文件的权利
w:前提需要具备执行权限,针对目录的子文件或子目录进行创建,删除和修改的权利
x:是否允许进入目录
目录权限设置结论:(确认执行权限不能随意分配)
1. root用户在没有任何权限时,也可以随意操作目录信息的
2. 对于属主、属组、其他用户在使用读权限或写权限时,都需要使用执行权限进行配合
3. 对于目录来说,执行权限更为重要,可以保证其他权限的作用。
2.文件权限限制
r:读取文件内容的权限
w:编辑文本的权限。前提具备r权限,否则只能覆盖原文件内容
x:将文件作为脚本运行的权限。前提具备r权限
文件权限设置结论:(文件可以分配读权限,但是要控制其他权限)
1. root用户在没有任何权限时,也可以随意读取和编辑任何文件信息,但是无法使用执行权限,除非赋予执行权限
2. 对于属主、属组、其他用户在使用写权限或执行权限时,都需要使用读权限进行配合
3. 对于文件来说,读权限更为重要,可以保证其他权限的作用。
操作系统权限验证流程原理:逐级验证
三、umask码
1.作用:管理系统的默认权限
2.默认权限的操作管理
umask #查看umask码
0022
最大权限-umask=默认权限
目录默认权限:777-022=755
文件默认权限:666-022=644
# 将umask码改为0012
目录:765 rwxrw-r-x
文件:664 rw-rw-r--。并非654
因为文件默认没有执行权限
文件默认权限计算时,如果umask奇数,则需要在该权限位+1
所以666-033=644
# 系统默认权限最大给到多少是合理的?
密码文件权限:600
目录:755
文件:644
四、隐藏权限(属性)
作用:能在权限基础上进一步做权限限制
1.管理隐藏权限
lsattr #查看隐藏权限
chattr #设置隐藏权限
a #限制文件只可以被追加内容,不可以删除,或修改原内容
i #限制文件不允许被修改、编辑、追加内容
扩展:特殊权限 suid sgid sticky
五、sudo提权
1.介绍
私人定制的权限提升,可以让一个普通用户临时具备root的权限
2.作用
最小化的提供给普通用户操作命令的root权限
3.相关文件
1.直接命令提权
/etc/sudoers 不建议直接编辑
visudo 直接打开配置文件,并且支持语法识别功能
-c #检查语法是否正确
# sudo提权配置文件,给用户提权命令
visudo
在100行下添加如下内容
用户名 ALL=(ALL) 命令的绝对路径
# 查看命令绝对路径
which 命令
which passwd
# 普通用户使用提权命令
sudo -l #查看可以使用的提权命令
sudo 被提权的命令命令
2.真实用户组提权
1-针对用户组配置提权
visudo
在108行下添加如下内容
%组名 ALL=(ALL) 命令的绝对路径
2-创建用户组
groupadd 组名
3-添加用户到提权组
usermod -g 组名 用户名
3.虚拟用户组提权
1-visudo中定义虚拟的用户组
visudo 21行
User_Alias 组名 = 用户名1,用户名2
2-针对虚拟用户组提权
组名 ALL=(ALL) 命令的绝对路径 # 不需要加%
visudo优化
# 提权命令设置组
1-通过命令组提权
Cmnd_Alias 组名 = 添加命令的绝对路径
NETWORKING
SERVICES
PROCESSES
2- 在visudo为用户提权
在100行下添加如下内容
用户名 ALL=(ALL) 提权命令的组名
# 提权不需要密码验证
用户名 ALL=(ALL) NOPASSWD:命令的绝对路径或命令组
# 开启sudo提权日志
Defaults logfile=/var/log/sudo.log
可用tail -f监控sudo日志
六、计划任务、定时任务
1.介绍
固定的时间,循环执行特定的指令,减轻人为工作成本
2.相关文件
/etc/crontab
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
# 语法格式
* * * * * user-name command to be executed
分钟 小时 日期 月份 周
分时日月周
默认每1分钟执行一次
# 真正存放定时任务的默认文件
/var/spool/cron/用户名
# 定时任务的日志文件
/var/log/cron.log
3.crontab 管理定时任务
-l 查看定时任务
-e 编辑定时任务
4.定时任务的时间格式
1)基本时间格式
# 每周6的凌晨3点做某事
0 3 * * 6
# 3月8号,下午5点
0 17 8 3 *
2)多个时间段执行
# 每天的下午3和5点分别执行一个任务
0 15,17 * * *
# 每周六和周一,半夜3点和6点
0 3,6 * * 1,6
3)单位时间内周期执行
# 每天0到6,每隔两小时重启服务
0 0-6/2 * * *
# 每天下午5-晚上8点每小时执行
0 17-20 * * *
# 每天每隔两小时做某事
0 */2 * * *
##### 补充:磁盘空间不足问题(no space left on this device)(面试爱问)
# inode号没了
磁盘有容量
当前分区有大量的空间生成,一般是由于定时任务书写不规范造成
# block用光
磁盘没容量
系统有超大文件,清理
5.date命令
date #显示时间
作用:打印系统当前时间,修改系统时间
date +%F # 显示年月日
date +%T # 显示时分秒
-s 修改时间
date -s "2010-10-23 8:01:23"
6.ntpdate
作用:时间同步
# 安装
yum install ntpdate
# 通过阿里云时间同步服务器同步时间
ntpdate ntp1.aliyun.com
7.定时任务编写规范
1)命令要使用绝对路径
2)编写的定时任务不能有任何输出结果,每个任务必须在末尾重定向到空(&>/dev/null)
令
date #显示时间
作用:打印系统当前时间,修改系统时间
date +%F # 显示年月日
date +%T # 显示时分秒
-s 修改时间
date -s "2010-10-23 8:01:23"
6.ntpdate
作用:时间同步
# 安装
yum install ntpdate
# 通过阿里云时间同步服务器同步时间
ntpdate ntp1.aliyun.com
7.定时任务编写规范
1)命令要使用绝对路径
2)编写的定时任务不能有任何输出结果,每个任务必须在末尾重定向到空(&>/dev/null)
3)设定时间日期和星期不要同时设置