文件目录所有者
在 linux 中的每个用户必须属于一个组,不能独立于组外。在 linux 中每个文件有所有者、所在组、其它组的概念。
1. 查看文件的所有者 指令:ls -ahl
应用实例:创建一个组 police,再创建一个用户 tom,将 tom 放在 police 组 ,然后使用 tom 来创建一个文件 ok.txt,看看情况如何
2. 改变文件所有者
chown 用户名 文件名
所有者改变但是所在组没有变
注:文件所有者并非是所在组的
那如何改变文件所在组呢?
3.修改文件所在组
chgrp 组名 文件名
4. 其他组
除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组.
5.改变用户所在组
在添加用户时,可以指定将该用户添加到哪个组中,同样的用 root 的管理权限可以改变某个用户所在的组。
usermod -g 组名 用户名
usermod -d 目录名 用户名 改变用户登陆的初始目录
权限介绍
ls -l 中显示的内容如下:
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
0-9 位说明
1)第 0 位确定文件类型(d, - , l , c , b)
2)第 1-3 位确定所有者(该文件的所有者)拥有该文件的权限。—User
3)第 4-6 位确定所属组(同用户组的)拥有该文件的权限,—Group
4)第 7-9 位确定其他用户拥有该文件的权限 —Other
1. rwx权限详解
rwx 作用到文件
- [ r ]代表可读(read): 可以读取,查看
- [ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
- [ x ]代表可执行(execute):可以被执行
10.8.2 rwx 作用到目录 - [ r ]代表可读(read): 可以读取,ls 查看目录内容
- [ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录
- [ x ]代表可执行(execute):可以进入该目录
2.文件及目录权限实际案例
ls -l 中显示的内容如下:(记住)
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
10 个字符确定不同用户能对文件干什么
- 第一个字符代表文件类型: 文件 (-),目录(d),链接(l)
- 其余字符每 3 个一组(rwx) 读® 写(w) 执行(x) 第一组 rwx : 文件拥有者的权限是读、写和执行
- 第二组 rw- : 与文件拥有者同一组的用户的权限是读、写但不能执行第三组 r-- : 不与文件拥有者同组的其他用户的权限是读不能写和执行可用数字表示为: r=4,w=2,x=1 因此 rwx=4+2+1=7
- 1 文件:硬连接数或 目录:子目录数
- root 用户
- root 组
- 1213 文件大小(字节),如果是文件夹,显示 4096 字节
- Feb 2 09:39 最后修改日期
- abc 文件名
3.修改权限
chmod 可以修改文件或者目录的权限
1. 第一种方式:+ 、-、= 变更权限
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o 的总和)
- chmod u=rwx,g=rx,o=x 文件目录名
- chmod o+w 文件目录名
- chmod a-x 文件目录名
案例 - 给 abc 文件 的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限。
2) 给 abc 文件的所有者除去执行的权限,增加组写的权限
3) 给 abc 文件的所有用户去除读的权限
2. 通过数字修改权限
规则: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, 使用给数字的方式实现:
rwx = 4+2+1 = 7
r-x = 4+1=5
r-x = 4+1 =5
指令:chmod 755 /home/abc.txt
4.修改文件所有者
chown newowner file 改变文件的所有者
chown newowner:newgroup file 改变用户的所有者和所有组
-R 如果是目录 则使其下所有子文件或目录递归生效
实例
改变所有者和所有组
目录下所有的文件和目录的所有者都修改成 tom
实践-警察和土匪游戏
police , bandit jack, jerry: 警 察xh, xq: 土 匪
(1) 创建组
bash> groupadd police bash> groupadd bandit
(2) 创建用户
(3) jack 创建一个文件,自己可以读写,本组人可以读,其它组没人任何权限
(5) xh 投靠 警察,看看是否可以读写. 先用 root 修改 xh 的组 :
使用 jack 给他的家目录 /home/jack 的所在组一个 rx 的权限
xh 需要重新注销在到 jack 目录就可以操作 jack 的文件
如果该用户只对文件有写权限,对目录没有操作权限,是无法写文件的
crond 任务调度
crontab 进行定时任务的调度
任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类:1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
crontab [选项]
练习:每隔一分钟将一段话写入文件
crontab -e
*/1 * * * * ls -l /etc/ >> /tmp/to.txt
案例
11.5.1 案例 1:每隔 1 分钟,就将当前的日期信息,追加到 /tmp/mydate 文件
中
- 先编写一个文件 /home/mytask1.sh date >> /tmp/mydate
- 给 mytask1.sh 一个可以执行权限
chmod 744 /home/mytask1.sh - crontab -e
- */1 * * * * /home/mytask1.sh
- 成功
11.5.2 案例 2:每隔 1 分钟, 将当前日期和日历都追加到 /home/mycal 文件中 - 先编写一个文件 /home/mytask2.sh
date >> /tmp/mycal cal >> /tmp/mycal - 给 mytask1.sh 一个可以执行权限
chmod 744 /home/mytask2.sh - crontab -e
- */1 * * * * /home/mytask2.sh
- 成功
11.5.3 案例 3: 每天凌晨 2:00 将 mysql 数据库 testdb ,备份到文件中
mydb.bak。 - 先编写一个文件 /home/mytask3.sh
/usr/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak - 给 mytask3.sh 一个可以执行权限
chmod 744 /home/mytask3.sh
3) crontab -e
4) 0 2 * * * /home/mytask3.sh
5) 成功
crond 相关指令:
- conrtab –r:终止任务调度。
- crontab –l:列出当前有那些任务调度
- service crond restart [重启任务调度]
这里命令3可能会报错
首先 开启cron自启用 systemctl enable crond
sysytemctl start crond
systemctl restart crond.service
分区
分区基础知识
- mbr 分区:
1.最多支持四个主分区
2.系统只能安装在主分区
3.扩展分区要占一个主分区
4.MBR 最大只支持 2TB,但拥有最好的兼容性
2)gtp 分区:
1.支持无限多个主分区(但操作系统可能限制,比如 windows 下最多 128 个分区)
2.最大支持 18EB 的大容量(1EB=1024 PB,1PB=1024 TB )
3.windows7 64 位以后支持 gtp
window下的分区
主分区对应c盘 其他是逻辑分区
Linux分区
- Linux 来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构 , Linux 中每个分区都是用来组成整个文件系统的一部分。
- Linux 采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录, 且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
3)示意图
硬盘说明
- Linux 硬盘分 IDE 硬盘和 SCSI 硬盘,目前基本上是 SCSI 硬盘
2)对于 IDE 硬盘,驱动器标识符为“hdx~”,其中“hd”表明分区所在设备的类型,这里是指 IDE 硬盘了。“x”为盘号(a 为基本盘,b 为基本从属盘,c 为辅助主盘,d 为辅助从属盘),“~”代表分区,前四个分区用数字 1 到 4 表示,它们是主分区或扩展分区,从 5 开始就是逻辑分区。例,hda3 表示为第一个 IDE 硬盘上的第三个主分区或扩展分区,hdb2 表示为第二个 IDE 硬盘上的第二个主分区或扩展分区。
3)对于 SCSI 硬盘则标识为“sdx~”,SCSI 硬盘是用“sd”来表示分区所在设备的类型的,其余则和 IDE 硬盘的表示方法一样。
使用 lsblk (老师不离开)指令查看当前系统的分区情况
不带f可以看大小
挂载的经典案例
需求是给我们的 Linux 系统增加一个新的硬盘,并且挂载到/home/newdisk
如何增加一块硬盘
1)虚拟机添加硬盘
2)分区 fdisk /dev/sdb 然后选择p 1 1 w
3)格式化 mkfs -t ext4 /dev/sdb1
4)挂载 先创建一个 /home/newdisk , 挂 载 mount /dev/sdb1 /home/newdisk(只是临时挂载,重启机器就不挂载了)
5)设置可以自动挂载(永久挂载,当你重启系统,仍然可以挂载到 /home/newdisk) 。
vim /etc/fstab
将这句话加入文件 /dev/sdb1 /home/newdisk ext4 defaults 0 0
虚拟机增加硬盘
虚拟机增加硬盘步骤 1
在【虚拟机】菜单中,选择【设置】,然后设备列表里添加硬盘,然后一路【下一步】,中间只有选择磁盘大小的地方需要修改,至到完成。然后重启系统(才能识别)!
虚拟机增加硬盘步骤 2
分区命令 fdisk /dev/sdb
开始对/sdb 分区
• m 显示命令列表
• p 显示磁盘分区 同 fdisk –l
• n 新增分区
• d 删除分区
• w 写入并退出
说明: 开始分区后输入 n,新增分区,然后选择 p ,分区类型为主分区。两次回车默认剩余全部空间。最后输入 w 写入分区并退出,若不保存退出输入 q。
虚拟机增加硬盘步骤 3
格式化磁盘
分区命令:mkfs -t ext4 /dev/sdb1
其中 ext4 是分区类型
虚拟机增加硬盘步骤 4
挂载: 将一个分区与一个目录联系起来,
• mount 设备名称 挂载目录
• 例如: mount /dev/sdb1 /newdisk
• umount 设备名称 或者 挂载目录 取消挂载
• 例如: umount /dev/sdb1 或 者 umount /newdisk
虚拟机增加硬盘步骤 5
永久挂载: 通过修改/etc/fstab 实现挂载添加完成后 执行 mount –a 即刻生效
磁盘情况查询
查看磁盘整体使用情况
df -l 或者 df -lh
查询指定目录的磁盘使用情况
• 基本语法
du -h /目录
查询指定目录的磁盘占用情况,默认为当前目录
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
–max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值
查看/tmp目录的磁盘占用情况, 深度为1
案例
- 统计/tmp 文件夹下文件的个数
-
统计/home 文件夹下目录的个数
-
统计/home 文件夹下文件的个数,包括子文件夹里的
-
统计文件夹下目录的个数,包括子文件夹里的
-
以树状显示目录结构
第一次使用需要安装
yum install tree