2.6组管理和权限管理
-
Liunx
组基本介绍 在
liunx
中没个用户必须属于一个组,不能独立于组外。在liunx
中每个文件有所有者,所在组,其他组的概念。
-
文件/目录所有者
一般为文件创建者,谁创建了该文件,就自然的成为了该文件的所有者
-
查看文件的所有者
-
指令:
ls -ahl
-
应用实例:
-
-
修改文件所有者
-
指令:
chown 用户名 文件名
-
应用案例:
使用
root
创建一个文件apple.txt
,然后将其所有者修改成tom
chown tom apple.txt
-
-
-
组的创建
- 基本指令:
groupadd 组名
- 应用实例:
- 创建以组
monster
。groupadd monster
- 创建一个用户
fox
,并放入到monseer
组中。useradd -g monster fox
- 创建以组
- 基本指令:
-
文件/目录 所在组
当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组(默认)
-
查看文件/目录所在组
-
基本指令:
ls -ahl
-
应用实例
使用
fox
来创建一个文件,看看该文件属于哪个组?-rw-r--r-- 1 fox monster 0 11月 5 12:50 ok.txt
-
-
修改文件/目录所在的组
-
基本指令:
chgrp 组名 文件名
-
应用实例
使用
root
用户创建文件orange.txt
,看着当前这个文件属于哪个组 ,然后将这个文件所在组,修改到fruit
组。groupadd fruit; touch orange.txt; // 看看当前这个文件属于哪个组 -> root组 chgrp fruit orange.txt
-
-
-
其他组:除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组
-
改变用户所在组
在添加用户时,可以指定将该用户添加到哪个组中,同样的用
root
的管理权限可以改变某个用户所在的组。-
改变用户所在组
usermod -g 新组名 用户名
usermod -d 目录名 用户名
(改变用户登录的初始目录)特别说明:用户需要有进入到新目录的权限
-
应用实例
将
zwj
这个用户从原来所在组,修改到wudang
组。usermod -g wudang zwj
-
-
权限的基本介绍
ls -l 中显示的内容如下 -rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
0—9位说明
- 第0为确定文件类型
d,-,l,c,b
- l是链接,相当于
windows
的快捷方式 - d是目录,相当于
windows
的文件夹 - c是字符设备文件,鼠标,键盘
- b是块设备,比如硬盘
- l是链接,相当于
- 第1-3位时确定所有者(该文件的所有者)拥有该文件的权限。——User
- 第4-6位确定所属组者(同用户组的)拥有该文件的权限。——Group
- 第7-9位确定其他用户拥有该文件的权限。——Other
- 第0为确定文件类型
-
rwx
权限详解-
rwx
作用到文件- r:代表可读(read):可以读取,查看
- w:代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有些权限,才能删除该文件
- x:代表可执行(execute):可以被执行
-
rwx
作用到目录- r:代表可读(read):可以读取,
ls
查看目录内容 - w:代表可写(write):可以修改,对目录内创建+删除+重命名目录
- x:代表可执行(execute):可以进入该目录
- r:代表可读(read):可以读取,
-
-
修改权限
-
基本说明:通过
chmod
指令,可以修改文件或目录的权限 -
第一种方式:±=变更权限
-
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)
- `chmod u=rwx,g=rx,o=x 文件、目录名``
- ``chmod o+w 文件/目录名`
- chmod a-x 文件/目录名`
-
案例演示
-
给
abc
文件的所有读者写执行的权限,给所在组读执行权限,给其他组读执行权限chmod u=rwx,g=rx,o=rx abc
-
给
abc
文件的所有者除去执行的权限,增加组的写的权限chmod u-x,g+w abc
-
给
abc
文件的所有用户添加读的权限chmod a+r abc
-
-
-
第二种方式:通过数字变更权限
-
r=4 w=2 x=1 rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 文件目录名 == chmod 751 文件/目录名
-
案例演示
将
/home/abc.txt
文件的权限修改成rwxr-xr-x
,使用给数字的方式实现。chmod 755 /home/abc.txt
-
-
-
修改文件所有者:
chown
-
基本介绍
chown newowner 文件/目录 改变所有者
chown newowner:newgroup 文件/目录 改变所有者和所在组
-R
如果是目录,则使其下所有子文件或目录递归生效
-
案例演示
-
请将
/home/abc.txt
文件的所有者修改成tom
chown tom /home/abc.txt
-
请将
/home/test
目录下所有的文件和目录的所有者都修改成tom
chown -R tom /home/test
-
-
-
修改文件/目录所在组:
chgrp
-
基本介绍
chgrp newgroup 文件/目录 【改变所在组】
-
案例演示
-
请将
/home/abc.txt
文件的所在组修改成shaolin
groupadd shaolin chgrp shaolin /home/abc.txt
-
请将
/home/test
目录下所有的文件和目录的所在组都修改时成shaolin
chgrp -R shaolin /home/test
-
-
2.7:定时任务调度
-
crond
任务调度:crontab
进行定时任务的设置-
概述
任务调度:是指系统在某个时间执行的特定的命令或程序
任务调度分类:
- 系统工作:有些重要的工作必须周而复始的执行。如病毒扫描等
- 个别用户工作:个别用户可能希望执行某些程序。比如对
mysql
数据库的备份。
示意图:
-
基本语法:
crontab [选项]
-
常用选项
-e 编辑crontab -l 查询crontab任务 -r 删除当前用户所有的crontab -
快速入门
设置任务调度文件:/etc/crontab 设置个人任务调度。执行 crontab -e 接着输入任务到调度文件。 // 意思说每小时的每分钟执行 /etc/ > /tmp/to.txt */1 * * * * ls -l /etc/ > /tmp/to.txt
-
参数细节说明: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分钟就执行一遍命令
-
-
应用实例
-
每隔1分钟,就将当前的日期信息,追加到
/tmp/mydate
文件中*/1 * * * * date >> /tmp/mydate
-
每隔1分钟,将当前日期和日历都追加到
/home/mycal
文件中vim /home/my.sh; date >> /home/mycal; cal >> /home/mycal; chmod u+x /home/my.sh crontab -e */1 * * * * /home/my.sh
-
每天凌晨2点,将mysql数据库
testdb
,备份到文件中。crontab -e 0 2 * * * mysqldump -u root -proot testdb > /home/db.bak
-
-
crond
相关conrtab -r
:终止任务调度crontab -l
:列出当前有那些任务调度service crond restart
:重启任务调度
-
-
at
定时任务-
基本介绍
-
at
命令是一次性定时计划任务,at
的守护进程atd
会以后台模式运行,检查作业队列来运行 -
默认情况下,
atd
守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业 -
at
命令是一次性定时计划任务,执行完一个任务后不再执行次任务了 -
在使用
at
命令的时候,一定要保证atd
进程的启动,可以使用相关指令来查看。ps -ef | grep atd
可以检测atd
是否在运行 -
示意图
-
-
at
命令格式:at [选项] [时间]
Ctrl+D结束at命令的输入,输入两次 -
at
命令选项
-
at
时间定义:指定时间的方法- 接受在当天的
hh:mm
(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。 - 使用
midnight
(深夜)、noon
(中午)、teatime
(饮茶时间,一般是下午4点)等比较模糊的词语来指定时间 - 采用12小时计时制,即在时间上加上
AM
或PM
来说明是上午还是下午。 - 指定命令执行的具体日期,指定格式为
month day
或mm/dd/yy
或dd.mm.yy
,指定的日期必须跟在之指定时间的后面 - 使用相对计时法。指定格式为:
now + count time-units
,now
就是当前时间,time-units
是时间单位,这里更够是minutes
(分钟)、hours
(小时)、days
(天)、weeks
(星期)。count
是时间的数量 - 直接使用
today
(今天)、tomorrow
(明天)来指定完成命令的时间
- 接受在当天的
-
应用实例
-
2天后的下午5点执行
/home/ls /home
-
atq
命令来查看系统中没有执行的工作任务 -
明天17点钟,输出时间到指定文件内,比如
root/date100.log
-
2分钟后,输出时间到指定文件内。比如
/root/date200.log
-
删除已经设置的任务,
atrm
编号atrm 4 // 表示将job队列,编号为4的job删除
-
-