首页 技术 正文
技术 2022年11月21日
0 收藏 516 点赞 2,508 浏览 4444 个字

Linux文件和目录的属性及权限讲解

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

文字解释:

第一列:inode索引节点

第二列:文件类型及权限

第三列:硬链接个数

第四列:文件或目录所属的用户(属主)

第五列:文件或目录所属的用户所归属的组(用户组)

第六列:文件或目录的大小

第七、八、九列:文件或目录的最近修改时间

第十列:实际的文件名或目录名(文件名称存放在上级目录的block中)

ls -l 显示的时间是修改时间。

[root@oldboy ~]# ls -l –time-style=long-iso

total 9104

-rw——-. 1 root root    1056 2016-07-05 21:13 anaconda-ks.cfg

drwxr-xr-x. 8 root root    4096 2016-07-18 17:57 data

-rw-r–r–. 1 root root 9264484 2015-04-15 01:40 etc.tar.gz

-rw-r–r–. 1 root root   21682 2016-07-05 21:13 install.log

-rw-r–r–. 1 root root    5890 2016-07-05 21:12 install.log.syslog

文件的时间说明

Access: 2016-07-21 15:33:01.698142377 +0800  <==访问时间 find -atime

Modify: 2016-07-19 09:35:42.432295596 +0800  <==修改时间,内容发生变化 find -mtime

Change: 2016-07-19 09:35:42.452302559 +0800  <==变化时间,包含Modify权限、属主、用户组 find -ctime

stat命令查看时间等的属性

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux在硬盘格式化分区、创建文件系统时,主要创建了两部分:

第一部分是inode索引节点(很多个):

用来存放文件的属性(文件类型、修改时间、权限等),文件的属性不包括文件名。

inode存放的还包含指向文件实体的指针的功能(inode节点–block的对应关系)等。

第二部分是Block数据块(很多个):

用来存放数据和内容(照片、视频、文档等)

我们读取一个文件的内容时需要通过inode节点指向这个文件的block里,然后通过指向才能从block中读取数据和内容,因为数据和内容都是存放在block里的。

每个文件或目录的inode大小(存放属性的大小):5.8是128    6.4是256

Linux有关block的知识:

1)磁盘读取数据是按block为单位读取的。

2)一个文件可能占用多个block。每读取一个block就会消耗一次磁盘I/O

3)如果要提升磁盘IO性能,那么就要尽可能一次性读取数据尽量的多

4)一个block只能存放一个文件的内容,无论内容有多小。如果block 4K,那存放1K的文件,剩余3K就浪费了。

5)block并非越大越好。block太大对于小文件存放就会浪费磁盘空间。

例如:1000K的文件,block为4K,占用250个block;block为1K,占用1000个block。访问效率谁更高?消耗IO分别为250次和1000次。

6)大文件(大于16K)一般设置block大一点;小文件(小于1K)一般设置block小一点。

7)block太大例如4K,文件都是0.1K的,大量浪费磁盘空间。

8)block太小例如1K,文件都是1000K的,消耗磁盘IO。

9)block的设置也是格式化分区时候 mkfs.ext4 -b 2048 -I 256 /dev/sdb(工作中不要改)

10)文件较大时,block设置大一些会提升磁盘访问效率。

11)ext3/ext4文件一般设置为4K

文件原理图:

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

inode原理图:

Linux文件和目录的属性及权限

学会给阶段性的知识做小结是学好Linux的好习惯

有关inode知识的小结:

1)磁盘分区格式化为ext4文件系统后会生成一定数量的inode和block

2)inode是索引节点,作用是存放文件的属性信息以及作为文件的索引(指向文件的实体block)。

3)ext3/ext4文件系统的block存放的是文件的实际内容

4)block的大小一般有1k,2k,4k几种。其中引导分区等为1k,其它普通分区为4k(C6)。

[root@oldboy ~]# dumpe2fs /dev/sda1|grep -i “block size”  <==/boot分区1024(1K)

dumpe2fs 1.41.12 (17-May-2010)

Block size:               1024

[root@oldboy ~]# dumpe2fs /dev/sda3|grep -i “block size”  <== / 根分区4096(4K)

dumpe2fs 1.41.12 (17-May-2010)

Block size:               4096

5)inode是一块磁盘存储空间,C6非启动分区inode默认大小256字节,C5是128字节。

6)inode是一串数字,不同的文件对应的inode(一串数字)在文件系统里是唯一的

7)inode号相同的文件,互为硬链接文件(文件的又一个入口)。

8)一个文件被创建后至少要占用一个inode和一个block。可以理解为一个文件诞生需要一个inode和一个block,就算是空文件,系统也会分配给它inode和block。

9)如果一个文件很大,可能占多个block(4K)。

10)如果文件很小,也要至少占一个block,并且剩余空间 不可以使用了(浪费了)。

11)inode大小和总量查看

[root@oldboy ~]# dumpe2fs /dev/sda3|egrep -i “block size|Inode size”

dumpe2fs 1.41.12 (17-May-2010)

Block size:               4096

Inode size:               256

[root@oldboy ~]# dumpe2fs /dev/sda3|egrep -i “block count|Inode count”

dumpe2fs 1.41.12 (17-May-2010)

Inode count:              479552

Block count:              1914624

Reserved block count:     95731

12)查看inode的总量和使用量命令df -i

13)如何生成及指定inode大小 mkfs.ext4 -b 2048 -I 256 /dev/sdb(工作中没必要改)。

#以上的C6和C5分别代表CentOS6和CentOS5

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

 特别提示:目录不能创建硬链接,只有文件才能创建硬链接。

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

文件类型小结:

1)-  regular file 普通文件 *****(5星重点)

普通文件细分又包含:ASCII text纯文本、executable二进制文件、data数据文件。

[root@oldboy ~]# file /etc/hosts

/etc/hosts: ASCII text

[root@oldboy ~]# file /bin/cp

/bin/cp: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped

[root@oldboy ~]# file /var/log/wtmp

/var/log/wtmp: data

[root@oldboy ~]# ls -l /var/log/wtmp /etc/hosts /bin/cp

-rwxr-xr-x. 1 root root 122872 10月 15 2014 /bin/cp

-rw-r–r–. 2 root root    180 7月  19 2016 /etc/hosts

-rw-rw-r–. 1 root utmp   6144 4月  19 07:49 /var/log/wtmp

2)d  directory 目录 *****(5星重点)

3)l link 符号链接或者软连接文件 ***(3星重点)

相当于windows的快捷方式,它指向文件的实体。

4)字符文件,块设备文件

c  character    串口设备、猫

b  block     硬盘、光驱 **(2星重点)

5).sock进程之间通信会用到。

s  socket

6)管道文件

p  named pipe (FIFO)

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

访问文件原理图:

Linux文件和目录的属性及权限

 想要访问/tmp/oldboyfile首先从“/”根目录开始,通过“/”根目录的inode找到对应的block。其中根的block内又存放有子文件和子目录的文件名(包括/tmp)。通过访问/tmp的inode信息,然后在由inode指向对应的block,从而找到oldboyfile文件的名字。找到oldboyfile后,通过它的inode信息判断,如果权限允许则指向对应block。

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

Linux文件和目录的属性及权限

对于文件:

[root@oldboy test]# umask 032

[root@oldboy test]# umask

0032

[root@oldboy test]# touch 032.log

[root@oldboy test]# ls -l 032.log

-rw-r–r–. 1 root root 0 7月  26 18:14 032.log    #为什么权限是644?

[root@oldboy test]# umask 051

[root@oldboy test]# umask

0051

[root@oldboy test]# touch 051.log

[root@oldboy test]# ls -l 051.log

-rw–w-rw-. 1 root root 0 7月  26 18:18 051.log   #为什么权限是626?

=========================================

对于目录:

[root@oldboy test]# umask

0051

[root@oldboy test]# mkdir d051

[root@oldboy test]# ls -ld d051/

drwx-w-rw-. 2 root root 4096 7月  26 18:26 d051/

小结:

文件默认权限就是666 – umask得到的值,目录默认权限就是777 – umask得到的值。但是对于文件,umask值的每一位上如果有奇数,相减完后,奇数的那一位还要在加上1。

如下所示:

f 666-umask

6 6 6

0 2 2 –

———

6 4 4

6 6 6

0 3 2 –

1   +

———

6 4 4

6 6 6

0 5 1 –

1 1 +

———

6 2 6

生产案例:

网站站的服务用户为oldboy

防止木马入侵:

文件和目录给什么权限,安全临界点:

d(目录) 755  root root

f(文件) 644  root root

所以umask默认控制的权限是比较安全的值

特别提示:在一般生产环境当中,umask的使用不多见,在此,大家了解一下umask是怎么回事即可。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,996
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,510
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,353
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,137
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,770
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,848