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在硬盘格式化分区、创建文件系统时,主要创建了两部分:

第一部分是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

文件原理图:

inode原理图:

学会给阶段性的知识做小结是学好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

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

文件类型小结:

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)

访问文件原理图:

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

对于文件:

[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是怎么回事即可。

Linux文件和目录的属性及权限的更多相关文章

  1. Linux文件和目录的属性及权限总结

    本文讲述的是文件或目录的属性及权限,比如索引节点inode.文件类型.文件权限及属主:还对setuid.setgid及粘贴位进行了相关的讲解.其中,对ln.chmod.chown.chgrp.umas ...

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

    一.Linux中的文件 1.1文件属性概述 Linux里一切皆文件! Linux系统中的文件或目录的属性主要包括;索引节点(inode).文件类型.权限属性.链接数.所归属的用户组.最近修改时间等内容 ...

  3. Linux系统文件和目录的属性及权限

    1 文件属性概述 Linux系统中的文件或目录的属性主要包括:索引节点(inode).文件类型.权限属性.硬链接数.所归属的用户和用户组.最近修改时间等内容(文件名严格来说不属于文件的属性): 下面是 ...

  4. (转)Linux 文件和目录的属性

    linux 文件属性与权限 原文:https://www.cnblogs.com/kzloser/articles/2673790.html https://www.cnblogs.com/danh/ ...

  5. Linux文件和目录权限实战讲解

    一 相关课程回顾1.1 linux文件类型当执行ls -l或ls -la 命令后显示的结果中最前面的第2~10个字符是用来表示文件权限 第一个字符一般用来区分文件和目录: d:表示是一个目录,事实上在 ...

  6. Linux文件和目录权限详细讲解

    转载请标明出处: http://www.cnblogs.com/why168888/p/5965180.html 本文出自:[Edwin博客园] Linux文件和目录权限解读 如何设置Linxu文件和 ...

  7. Linux学习之十四-Linux文件和目录权限

    Linux文件和目录权限 在Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问:允 ...

  8. Linux文件和目录的777、755、644权限解释

    Linux文件和目录的权限 1.文件权限 在linux系统中,文件或目录的权限可以分为3种: r:4 读 w:2 写 x:1  执行(运行)-:对应数值0 数字 4 .2 和 1表示读.写.执行权限 ...

  9. Linux 文件和目录的权限设置 - umask(默认权限),chmod(改变权限)

    1. chmod 改变已有目录或文件的权限 chmod 设置已有目录或文件的权限.可以为指定范围的用户添加或删除权限. 权限范围的表示法如下: u:User,即文件或目录的拥有者: g:Group,即 ...

随机推荐

  1. KAZE特征和各向异性扩散滤波

    kaze feature: http://www.doc88.com/p-6911376909693.html 各向异性扩散滤波  Scale-space and edge detection usi ...

  2. ZCGL项目解析——概述

    模块清单 微服务模块:routeservice.eurekaservice.configservice 数据服务模块:fdfsservice.hbaseservice 工具服务模块:common 系统 ...

  3. VUE - vue.runtime.esm.js?6e6d:619 [Vue warn]: Do not use built-in or reserved HTML elements as component i

    <script> export default {     name:'header'       //  不要使用内置或保留的HTML元素 , 改为Header或者置或保留的HTML元素 ...

  4. shiro#springboot

    1. shiro的使用围绕着securityManager,权限需要从realm中来. securityManager可以设置realm或者realms,或者通过设置authenticator来设置r ...

  5. axios和fetch

    前面的vuex提到了异步请求,在vue里异步请求怎么请求呢,很显然jq.ajax是不用了,不是不能用,而是没必要,jq是操作dom的工具,强行用浪费功能,还会加大打包后的体积,而且是没有promise ...

  6. 安卓多个按钮使用一个OnClickListener

    安卓studio 3.1 版本编译通过 一个按钮id为bt1 一个按钮Id为bt2 mainactivity 代码入下 package com.example.vmpdump.firstapp; im ...

  7. ACM-寻宝

    题目描述:寻宝 有这么一块神奇的矩形土地,为什么神奇呢?因为上面藏有很多的宝藏.该土地由N*M个小正方形土地格子组成,每个小正方形土地格子上,如果标有“E”,则表示该格可以通过:如果标有“X”,则表示 ...

  8. C#常用类库简介(二)

    原文出处:http://blog.csdn.net/weiwenhp/article/details/8140503 C#常用类库简介(一)的地址 System与mscorlib这两个dll中的类库是 ...

  9. Linux: 桥接 NET HOST-only

    桥接 虚拟机会利用真实的网卡和真实计算机之间通信  还能和同一局域网之间的计算机之间通信 缺点:会耗费一个ip地址 NET:虚拟机会通过VMnet8 虚拟的网卡与真实计算机之间通信    如果真实计可 ...

  10. UVA - 10891 Game of Sum (区间dp)

    题意:AB两人分别拿一列n个数字,只能从左端或右端拿,不能同时从两端拿,可拿一个或多个,问在两人尽可能多拿的情况下,A最多比B多拿多少. 分析: 1.枚举先手拿的分界线,要么从左端拿,要么从右端拿,比 ...