Linux文件系统笔记

一、文件权限
drwxr-xr-x. 3 root root 4096 3月 14 06:10 aa
文件属主(user):rwx
文件的属主所在的组(group):r-x
其他用户:(other):r-x
r-读取权限 —>对应八进制代表数值4
w-写入权限 —>对应八进制代表数值2
x-可执行权限—>对应八进制代表数值1
-无权限 ----->对应八进制代表数值0
三个为一组权限
aa文件权限也可以表示为八进制的数值:755
二、文件权限修改命令
a.数字表示权限方式
chmod +使用数字形式修改法(八进制数值)
例如:修改dir01
chmod 755 /root/dir01
b.字母表示权限方式
操作符号包括:
–增加指定的权限
–去除指定权限
= --清除所选的权限并将其设置为指定权限
操作权限:rwx任一组合
使用多个字母模式的时候,用逗号分隔开
例:chmod +rwx,r-x,r-x /root/dir01
一、实训项目
设置用户user1,设置user1对磁盘/dev/sdb1使用分区限额,
将user1对blocks的soft 设置为5000,hard设置为10000
inodes的soft 设置为5000,hard设置为10000
请问一下:
blocks是什么?inodes是什么?
blocks其实数据块,就是用来存放数据
inodes是存放文件的属性和文件权限的表格,占用128B
实训训练的内容:
运用的知识点:
1.文件、目录常用权限管理
2.修改文件、目录的默认权限
3.修改文件、目录的隐藏权限
4.使用ACL进行Linux高级权限管理
5.Linux系统下实现磁盘限额的方法
I.准备工作1:
为虚拟机添加一个大小为10GB的磁盘作为单个文件管理,添加后启动虚拟机
a.对虚拟机添加一块磁盘,相当于加入一块新购买的磁盘,处理新磁盘,
进行
1.分区 2.格式化 3.挂载分区
b.Linux管理设置在/dev文件目录下,要使用相应设备必须挂载到目录中去
管理和使用,也就是说设备也是通过文件系统进行管理
1)分区(新硬盘,新加入的第二块磁盘,在linux中/dev/sdb表示)
命令:fdisk /dev/sdb
命令(输入 m 获取帮助):n --添加一个分区
Partition type:
p primary (0 primary, 0 extended, 4 free) --主分区
e extended --扩展分区
Select (default p): p --选择主分区
分区号 (1-4,默认 1):1 --分区编号
起始 扇区 (2048-20971519,默认为 2048): --默认从2048开始
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+2G
–设置分区大小2GB
分区 1 已设置为 Linux 类型,大小设为 2 GiB
命令(输入 m 获取帮助):p --查看第一个主分区的信息
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0036823e
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
命令(输入 m 获取帮助):w --保存设置
The partition table has been altered!
2)格式化分区(windows格式化分区成FAT,FAT32,NTFS格式)
Linux格式:ext3,ext4,xfs等格式
将第一个主分区分成ext4格式
命令:
mkfs -t ext4 /dev/sdb1
3)完成磁盘的挂载
a.手动挂载 (当系统重启后,将失去挂载点访问不了该磁盘)
创建目录:mkdir /data
手动挂载命令:mount /dev/sdb1 /data
查看挂载磁盘的信息: df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
sdb1 ext4 2.0G 6.0M 1.8G 1% /data
b.自动挂载 (当系统重启后,挂载点可以继续访问该磁盘)
1)卸载挂载点
umount /data
查看挂载磁盘的信息: df -hT --查看不到该磁盘
2)编辑/etc/fstab配置文档,完成自动挂载配置和磁盘限额配置
vim /etc/fstab
输入:
磁盘 挂载点 类型
/dev/sdb1 /data ext4 defaults,usrquota,grpquota 0 0
usrquota --用户磁盘限额 (开启该功能)
grpquota --用户组的磁盘限额(开启该功能)
3)自动挂载
mount -a
查看挂载磁盘的信息: df -hT
上述就完成了硬件磁盘的相关设置
II.准备工作2:
1)创建用户
useradd user1
useradd user2
2)创建用户密码
echo “redhat”|passwd --stdin user1
echo “redhat”|passwd --stdin user2
III.设置文件相关权限
cd /data
创建文件和目录
touch aa.txt
mkdir dir1
[root@rhel7-1 data]# ll
rw-r–r–. 1 root root 0 4月 4 19:28 aa.txt–权限八进制数字表示644
drwxr-xr-x. 2 root root 4096 4月 4 19:28 dir1–权限八进制数字表示751
只能用root用户访问dir1,root组和其他用户和组没有权限
rwx — — --权限八进制数字表示700
命令:chmod 700 dir1
drwx------. 2 root root 4096 4月 4 19:28 dir1
–下述操作就是说明只有root用户可以访问,其他用户、组没有权限
[root@RHEL7-1 data]# su - user1
[user1@RHEL7-1 ~]$ cd /data
[user1@RHEL7-1 data]$ ls
aa.txt dir1 lost+found
[user1@RHEL7-1 data]$ cd dir1
-bash: cd: dir1: 权限不够
1)修改文件的所有者
命令:chown 用户名 文件名(文件路径下文件名)
ch --改变
own --所有者
修改当前的/data下的aa.txt的所有者为user1
cd /data
[root@RHEL7-1 data]# ll
-rw-r–r–. 1 root root 0 4月 4 19:28 aa.txt
aa.txt当前的所有者是root,所属组是root,对于其他的用户和用户组来说
只有r–只读权限,所有者是root是rw 读和写的权限
所属组是root的权限是r-- 读的权限
chown user1 aa.txt
[root@RHEL7-1 data]# ll
总用量 20
-rw-r–r–. 1 user1 root 0 10月 19 03:26 aa.txt
a.修改当前的/data下的aa.txt的所有者为user1
[root@RHEL7-1 data]# chown user1 aa.txt
[root@RHEL7-1 data]# ll
总用量 20
-rw-r–r–. 1 user1 root 0 4月 4 19:28 aa.txt
所有者是use1是rw读和写的权限
b.通过user1用户验证修改的权限
[user1@RHEL7-1 data]$ vim aa.txt
[user1@RHEL7-1 data]$ cat aa.txt
i love linux!
2)修改文件的所属组
修改aa.txt的权限为664 rw-rw-r–
[root@RHEL7-1 data]# ll
总用量 20
-rw-r–r–. 1 user1 root 0 4月 4 19:28 aa.txt
chmod 664 aa.txt
[root@RHEL7-1 data]# chmod 664 aa.txt
[root@RHEL7-1 data]# ll
总用量 24
-rw-rw-r–. 1 user1 root 14 4月 8 10:33 aa.txt
a.所有者user1和所属组root都具备了读写权限
修改所属组为user2,让user2用户具备读写权限
由于创建user2用户,默认创建user2组,user2组具备的权限,用户user2也具有
修改所属组命令:
chgrp 用户组 文件名称
ch–修改
grp–用户组
[root@RHEL7-1 data]# chgrp user2 aa.txt
[root@RHEL7-1 data]# ll
总用量 24
-rw-rw-r–. 1 user1 user2 32 4月 8 10:37 aa.txt
b.修改所属组为user2,让user2用户具备读写权限,验证user2具备读写权限
[user2@RHEL7-1 data]$ vim aa.txt
[user2@RHEL7-1 data]$ cat aa.txt
i love linux!
GO GO GO!
3)同时修改所有者和所属组
将aa.txt所有者和所属组都修改成root
命令:chown 所有者:所有组 文件名称
[root@RHEL7-1 data]# ll
总用量 24
-rw-rw-r–. 1 user1 user2 24 4月 8 10:45 aa.txt
[root@RHEL7-1 data]# chown root:root aa.txt
[root@RHEL7-1 data]# ll
总用量 24
-rw-rw-r–. 1 root root 20 4月 8 10:48 aa.txt
user1和user2的rw权限就被修改成其他用户和用户组的权限只读r–
3)文件访问控制列表(ACL)权限和访问控制列表设置都必须使用root用户
a.比如:在aa.txt文件中添加user1用户设置rw权限,其他设置权限不改变
不改变所有者和所属组的属性配置
对文件采用单独访问控制设置,引入文件访问控制列表
命令:setfacl -m u:用户名:文件权限 文件名称
set --设置
f --文件
acl --访问控制列表
-m --定义访问控制列表(创建)
-x --去除访问控制列表
u:–用户
添加ACL前:
[root@RHEL7-1 data]# ll
总用量 24
-rw-rw-r–. 1 root root 20 4月 8 10:48 aa.txt
[root@RHEL7-1 data]# getfacl aa.txt
file: aa.txt
owner: root
group: root
user::rw-
group::rw-
other::r–
使用文件访问控制列表在aa.txt文件中添加user1用户的rw权限
添加ACL后:在文件权限属性中多出一个+号,+号代表文件受到ACL的控制
[root@RHEL7-1 data]# setfacl -m u:user1:rw aa.txt
[root@RHEL7-1 data]# ll
总用量 28
-rw-rw-r–+ 1 root root 20 4月 8 10:48 aa.txt
[root@RHEL7-1 data]# getfacl aa.txt
file: aa.txt
owner: root
group: root
user::rw-
user:user1:rw-
group::rw-
mask::rw-
other::r–
使用user1用户去验证aa.txt受到ACL访问控制列表中user1用户的权限控制
使得aa.txt具有user1用户的rw的权限
b.在aa.txt文件中添加user2用户组设置rw权限,其他设置权限不改变
不改变所有者和所属组的属性配置
命令:setfacl -m g:用户组名:权限 文件名称
[root@RHEL7-1 data]# setfacl -m g:user2:rw aa.txt
[root@RHEL7-1 data]# getfacl aa.txt
file: aa.txt
owner: root
group: root
user::rw-
user:user1:rw-
group::rw-
group:user2:rw-
mask::rw-
other::r–
使用user2用户去验证aa.txt受到ACL访问控制列表中user2用户组的权限控制
使得aa.txt具有user2用户的rw的权限(user2在user2组中,具有rw权限)
[user2@RHEL7-1 data]$ vim aa.txt
[user2@RHEL7-1 data]$ cat aa.txt
i love linux!
i love you!
c.对目录添加访问控制列表
对dir1的目录添加user1用户的rw权限,其他设置权限不改变
不改变所有者和所属组的属性配置,验证一下dir1下的文件dd.txt会不会受到
文件访问控制列表ACL的控制
注意:针对目录设置文件访问控制列表,对目录中的文件或子目录设置没有影响,
不受到ACL的控制
[root@RHEL7-1 data]# setfacl -m u:user1:rwx dir1
[root@RHEL7-1 data]# ll
总用量 32
-rw-rw-r–+ 1 root root 26 4月 8 11:26 aa.txt
drwxrwx—+ 2 root root 4096 4月 8 11:29 dir1
创建dir1中的文件dd.txt
[root@RHEL7-1 data]$ cd dir1
[root@RHEL7-1 dir1]$ touch dd.txt
[user1@RHEL7-1 data]$ cd dir1
[user1@RHEL7-1 dir1]$ ls
dd.txt
[user1@RHEL7-1 dir1]$ ll
总用量 0
-rw-r–r–. 1 root root 0 4月 8 11:29 dd.txt
[user1@RHEL7-1 dir1]$ getfacl dd.txt
file: dd.txt
owner: root
group: root
user::rw-
group::r–
other::r–
总结:文件目录dir1下的dd.txt不受到文件目录ACL的控制,user1不具备
对dd.txt的rwx的权限,只有other::r–的只读权限
d.对目录中的子目录和子文件设置ACL控制列表保护
对dir1中的子文件夹设置ACL控制列表保护
命令:setfacl -m d:u:user1:rwx dir1
–d参数代表default默认
[root@RHEL7-1 data]# setfacl -m d:u:user1:rwx dir1
[user1@RHEL7-1 data]$ getfacl dir1
file: dir1
owner: root
group: root
user::rwx
user:user1:rwx
group::—
mask::rwx
other::—
default:user::rwx
default:user:user1:rwx
default:group::—
default😷:rwx
default:other::—
–对dir1设置默认的文件控制列表保护,那么在dir1下面的新创建的子目录
ccc,就会受到文件控制列表保护(设置权限和dir1的权限是一样)
[user1@RHEL7-1 dir1]$ mkdir ccc
[user1@RHEL7-1 dir1]$ getfacl ccc
file: ccc
owner: user1
group: user1
user::rwx
user:user1:rwx
group::—
mask::rwx
other::—
default:user::rwx
default:user:user1:rwx
二、项目实战操作
假设有用户user1,设置user1对/dev/sdb1分区的磁盘进行限额配置。
将user1对blocks的soft设置为5000,hard设置为10000
将inodes的soft设置为10,hard设置为15
1)使用user2去查询用户配额
[user2@RHEL7-1 ~]$ quota
quota: Cannot open quotafile /data/aquota.user: 没有那个文件或目录
–没有生成文件配额的相关用户的配额文件/data/aquota.user
a)检查/etc/fstv文件配置进行配额管理,检查用户配额以及用户组配额
如果没有配额,生成配额,有配额就自动设置
用root用户去查询配置信息:
命令:quotacheck -cugvmf /data
–这个命令就是对磁盘配额信息进行检查,如果有就查看配额信息,
如果没有就生成配额文件
-c 参数代表检查
-ug 参数分别指为用户、用户组配额
-v 参数指检查过程中显示详细信息
-m 创建配额文件
[root@RHEL7-1 dir1]# quotacheck -cugvmf /data
quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.
quotacheck: Scanning /dev/sdb1 [/data] done
quotacheck: Cannot stat old user quota file /data/aquota.user: 没有那个文件或目录. Usage will not be subtracted.
quotacheck: Cannot stat old group quota file /data/aquota.group: 没有那个文件或目录. Usage will not be subtracted.
quotacheck: Checked 5 directories and 3 files
quotacheck: Old file not found.
quotacheck: Old file not found.
[root@RHEL7-1 dir1]# cd …
[root@RHEL7-1 data]# ls
aa.txt aquota.group aquota.user dir1 lost+found
[root@RHEL7-1 data]# ll
总用量 48
-rw-rw-r–+ 1 root root 41 4月 8 09:44 aa.txt
-rw-------. 1 root root 7168 4月 13 14:58 aquota.group
–用户组配额信息,权限是600 只有root用户才能读和写
-rw-------. 1 root root 7168 4月 13 14:58 aquota.user
–用户配额信息,权限是600 只有root用户才能读和写
b)创建和修改配额设置(定义文件个数配额)
将user1对blocks的soft设置为5000,hard设置为10000
将inodes的soft设置为10,hard设置为15
同样要在root用户下去操作:
命令:edquota -u user1 --为user1创建配额信息
Disk quotas for user user1 (uid 1001):
Filesystem blocks soft hard inodes soft hard
/dev/sdb1 0 5000 10000 0 10 15
c)启用配额:
在root用户下去操作:
命令:quotaon -vug /data
–对/data磁盘生成配额
/dev/sdb1 [/data]: group quotas turned on
/dev/sdb1 [/data]: user quotas turned on
–组配额和用户配额都启动用了
切换到user1下去查重磁盘配额的使用情况:
针对我们user1的用户在data文件夹下的配额信息
[user1@RHEL7-1 dir1]$ quota --查询user1的配额信息
Disk quotas for user user1 (uid 1001): none
使用user1创建6个文件夹,分别是b,bb,…,bbbbbb
[user1@RHEL7-1 dir1]$ ll
总用量 44
drwxr-xr-x. 2 root
root 4096 4月 13 14:17 aa
-rw-rw-r–. 1 user2 user2 0 4月 13 14:13 aa.txt
-rw-rw----+ 1 user1 user1 0 4月 13 15:15 b
-rw-rw----+ 1 user1 user1 0 4月 13 15:16 bb
-rw-rw----+ 1 user1 user1 0 4月 13 15:16 bbb
-rw-rw----+ 1 user1 user1 0 4月 13 15:16 bbbb
-rw-rw----+ 1 user1 user1 0 4月 13 15:16 bbbbb
-rw-rw----+ 1 user1 user1 0 4月 13 15:16 bbbbbb
-rw-rw----+ 1 root root 20 4月 13 14:29 bb.txt
drwxrwx—+ 2 root root 4096 4月 13 14:32 ccc
查看user1的磁盘配额信息:
quota
Disk quotas for user user1 (uid 1001):
Filesystem blocks quota limit grace files quota limit grace
/dev/sdb1 24 5000 10000 6 10 15
Disk quotas for user user1 (uid 1001):
Filesystem blocks quota limit grace files quota limit grace
/dev/sdb1 40 5000 10000 10 10 15
–创建到了第十一文件则系统警告用户配额已经达到最大
[user1@RHEL7-1 dir1]$ touch bbbbbbbbbbb
sdb1: warning, user file quota exceeded.
–已经创建了十一个文件,超过软设置的10个,软限制会在6天后自动转成硬设置
[user1@RHEL7-1 dir1]$ quota
Disk quotas for user user1 (uid 1001):
Filesystem blocks quota limit grace files quota limit grace
/dev/sdb1 44 5000 10000 11
10 15 6days
–可以继续往下创建到第十五个文件,系统提示操作磁盘的限额
sdb1: write failed, user file limit reached.
touch: 无法创建"bbbbbbbbbbbbbbbb": 超出磁盘限额
[user1@RHEL7-1 dir1]$ quota --针对的user1的磁盘配额查询
Disk quotas for user user1 (uid 1001):
Filesystem blocks quota limit grace files quota limit grace
/dev/sdb1 60 5000 10000 15
10 15 6days
—15个文件已经达到了文件的最大的磁盘限额,15个文件占用了blocks数据块60个
–删除所有文件,清除配额
[user1@RHEL7-1 dir1]$ rm -rf * —删除所有的文件
[user1@RHEL7-1 dir1]$ ls
[user1@RHEL7-1 dir1]$ quota
Disk quotas for user user1 (uid 1001): none --说明user1用户没有使用磁盘任何配额
d)定义文件大小的配额(创建和修改)
1)向dir1目录中写入文件5个大小为1M的文件
命令:dd if=/dev/zero of=aa.dat bs=1M count=5
将user1对blocks的soft设置为5000,hard设置为10000
sdb1: warning, user block quota exceeded.
记录了5+0 的读入
记录了5+0 的写出
5242880字节(5.2 MB)已复制,0.00580391 秒,903 MB/秒
[user1@RHEL7-1 dir1]$ quota
Disk quotas for user user1 (uid 1001):
Filesystem blocks quota limit grace files quota limit grace/dev/sdb1 5124* 5000 10000 6days 1 10 15
–blocks块数为5124超过了配额5000
命令:dd if=/dev/zero of=bb.dat bs=1M count=5
[user1@RHEL7-1 dir1]$ dd if=/dev/zero of=bb.dat bs=1M count=5
sdb1: write failed, user block limit reached.
dd: 写入"bb.dat" 出错: 超出磁盘限额
记录了5+0 的读入
记录了4+0 的写出
4988928字节(5.0 MB)已复制,0.0107275 秒,465 MB/秒
–提示写入失败,6

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值