一、组
- 在linux中每个用户都属于一个组,不能独立于组外。
- 在linux中每个文件有所有者,所在组,其他组的概念。
应用案例
创建一个组police 在创建一个用户 tom,然后使用tom来创建一个文件,看看情况如何
su root
切换root用户groupadd police
创建组useradd -g police tom
创建用户,并指定组passwd tom
修改密码su tom
切换tom用户cd
回到tom的home目录touch ok.txt
创建一个ok.txt文件ls -ahl
查看文件所有者
3、修改文件所有者
**chown 用户名 文件名**
案例:
使用root创建一个文件apple.txt 然后将其所有者修改成tom
su root
切换用户cd 回到root目录
touch apple.txt
创建文件chown tom apple.txt
修改所有者为tom- 此时文件的所有者是 tom 但是文件的所在组是 root组
4、文件目录所在组
当某一个用户创建了一个文件后,默认这个文件的所在组就是该用户所在的组
4.1 查看文件/目录所在组
- 基本指令:
**ls -ahl**
4.2 修改文件所在组
- 基本指令:
**chgrp 组名 文件名**
**chgrp -R 组名 目录 //递归的把目录内的全部改成该组的**
案例
使用root用户创建文件 orange.txt 看看当前这个文件属于哪个组,然后将这个文件所在组,修改到police组
touch orange.txt
创建文件ls -ahl
查看信息chgrp police orange.txt
修改文件所在组
5、其他组
除去文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组。
二、权限理解
- 这里的权限主要是 文件和目录的权限
- 当使用
ls- ahl
查看时会显示下列信息
1、-rw-r--r--. 1 tom police 0 Sep 28 14:20 ok.txt
开头的 **-**
是文件的类型:-
普通文件 d
:目录l
:软链接c
:字符设备【键盘鼠标】b
: 块文件 【硬盘】**rw-**
表示:文件所有者拥有的权限r
:读的权限w
:写的权限-
:没有权限x
:**r--**
: 文件所在组的用户拥有的权限r--
表示文件所在者的用户只有读的权限**r--**
:文件的其他组的用户拥有的权限r--
表示文件其他组的用户只有读的权限**1**
:一般是文件 都是1
如果是目录,就代表他下面的子目录有多少个的个数**tom**
:用户**police**
:所在组**0**
: 文件的大小 ,如果是目录会显示 4096**Sep 28 14:20**
:文件最后的修改时间**ok.txt**
:文件名
2、详解rwx权限 rw-
2.1 rwx作用到文件
- r 代表可读,可以查看 读取 read
- w 代表可写,可以修改,但是不代表可以删除该文件,因为删除一个文件的前提是对该文件所在目录有写权限,才能删除该文件 write
- x代表可执行,可以被执行 execute
2.2 rwx作用在目录上
- r 代表可读,可以读取 ls查看目录内容
- w代表可写,可以修改,目录内创建+删除+重命名目录
- x代表可执行,可以进入该目录
三、修改权限
1、第一种方式: + - = 变更权限
u:所有者 g:所在组 o:其他人 a:所有人 (u g o 的总和)
**chmod u=rwx,g=rx,o=x **``**文件目录名**
【给后面这个文件 的所有者 rwx权限 所在组 rx权限….】**chmod o+w 文件目录名**
【给后面这个文件的 其他人增加一个 写的权限】**chmod a-x 文件目录名**
所有人 删掉一个 执行的权限】
案例:
- 给abc文件的所有者读写执行的权限,给所在组读执行权限,给其他组读执行权限
chmod u=rwx,g=rx,o=rx abc
- 给abc文件的所有者除去执行的权限,增加组写的权限
chmoe u-x,g+w abc
- 给abc文件的所有用户添加读的权限
第二种方式 :通过数字变更权限
- r=4 w=2 x=1 rwx=4+2+1=7
- chmod u=rwx,g=rx,=x 文件目录名
- 相当于 chmod 571 文件目录名
- 案例:
- 将/home/abc.txt 文件的权限修改成rwxr-xr-x 使用数字的方式实现
chmod 755 /home/abc.txt
- 将/home/abc.txt 文件的权限修改成rwxr-xr-x 使用数字的方式实现
修改文件所有者
基本介绍**chown 新用户名 文件名 改变文件的所有者**
**chown 新用户名 :新组名 文件 改变用户的所有者和所有组**
-R 如果是目录 则使其下所有子文件或者目录递归生效
案例
- 将/home/abc.txt 文件的所有者修改成 tom
chown tom abc.txt
- 将/home/kkk目录下所有的文件和目录的所有者都修改成tom
su root
**chown -R tom kkk/**
四、定时任务调度
1、crond任务调度 crond:守护线程
- 任务调度:是指系统在某个时间执行的特定的命令或程序
- 任务调度分类:
- 系统工作:有些重要的工作必须周而复始地执行,入病毒扫描等
- 个别用户工作:个别用户可能希望执行某些程序,比如对mysql的备份
- 基本语法:
**crontab 【选项】 **
**service crond restart 【重启任务调度】**
- 常用选项 | 选项 | 功能 | | —- | —- | | -e | 编辑crontab 定时任务 | | -l | 查询contab任务 | | -r | 删除当前用户所有的crontab任务 |
2、快速入门案例:
- 设置任务调度文件:/etc/crontab
- 设置个人任务调度。执行 crontab -e命令
- 接着输入任务到调度文件
- 如:/1 * ls -l /etc/>/tmp/to.txt
- 意思是说每小时的每分钟执行 ls -l /etc/ > /tmp/to.txt 命令
3、步骤如下
crontab -e //创建定时任务
/1 * ls -l /etc >> /tmp/to.txt
当保存退出后就会生效
在每一分钟都会自动的调用 ls -l /etc >> /tmp/to.txt4、参数细节说明
5个占位符的说明
项目 | 含义 | 范围 |
---|---|---|
第一个 * | 一小时当中的第几分钟 | 0-59 |
第二个 * | 一天当中的第几个小时 | 0-23 |
第三个 * | 一个月中的第几天 | 1-31 |
第四个 * | 一年当中的第几月 | 1-12 |
第五个 * | 一周当中的第几天 | 0-7(0和7都是周日) |
特殊符号的说明
特殊符号 | 含义 |
---|---|
* | 代表任何时间,比如第一个 * 就代表一小时中每分钟都执行一次的意思 |
, | 代表不连续的时间,比如 ”0 8,12,16 *命令 “ 就代表在每天的8点0分,12点0分,16点0分都执行一次的命令 |
- | 代表连续的时间范围,比如“0 5 1-6 命令”代表周一到周六的凌晨5点0分执行命令 |
*/n | 代表每隔多久执行一次。比如“/10 * 命令” 代表每隔10分钟就执行一遍命令 |
特定时间执行任务案例
时间 | 含义 |
---|---|
45 22 * 命令 | 在22点45分执行命令 |
0 17 1 命令 | 在每周1的17点0分执行命令 |
0 5 1,15 命令 | 每月1号到15号的凌晨5点0分执行命令 |
40 4 1-5 命令 | 每周一到周五的凌晨4点40分执行命令 |
/10 4 命令 | 每天的凌晨4点,每个10分钟执行一次命令 |
0 0 1,15 * 1命令 | 每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们的定义都是天,容易让管理员混乱 |
5、案例
- 每隔一分钟,就将当前的日期信息,追加到 /tmp/mydate文件中
- 先编写一个文件 /home/mytask1.sh(shell脚本)
- date >> /tmp/mydate.txt
- 给mytask1.sh 文件一个可执行权限
- chmod 744 mytask1.sh
- crontab -e
- /1 * /home/mytask1.sh
- 成功
- 先编写一个文件 /home/mytask1.sh(shell脚本)
- 每隔一分钟,将当前的日期和日历都追加到 /home/mycal文件中
- 先编写一个文件 /home/mytask2.sh(shell脚本)
- date >> /tmp/mycal.txt
- cal >> /tmp/mycal.txt
- 给mytask2.sh 文件一个可执行权限
- chmod 744 mytask2.sh
- crontab -e
- /1 * /home/mytask1.sh
- 成功
- 先编写一个文件 /home/mytask2.sh(shell脚本)
- 每天凌晨2点将MySQL数据库的testdb,备份到文件中 mydb.bak
- 先编写一个文件 /home/mytask3.sh(shell脚本)
- /usr/local/mysql/bin/mysqldump -u root -p0000 testdb > /tmp/mydb.bak
- 给mytask2.sh 文件一个可执行权限
- chmod 744 mytask3.sh
- crontab -e
- 0 2 * /home/mytask3.sh
- 成功
- 先编写一个文件 /home/mytask3.sh(shell脚本)