Linux 文件屬性及權限_007

 

 

Linux一切皆文件:php

Llinux系統的文件或目錄的屬性主要包括:索引節點、文件類型、文件權限、連接數、所屬的用戶和用戶組、最近修改時間等。html

 

Llinux文件屬性及權限圖形說明:node

 

 

Linux文件屬性及權限補充說明:python

 

 

 

 

第一列:inode索引結點linux

 

inode (index node)概述shell

 

  一個硬盤須要存放數據,首先分區,再格式化(格式化會建立文件系統類型),最後就能夠存儲數據。windows

Linux的文件系統類型通常有ext2/ext3/ext4等類型。在每一個linux存儲設備或存儲分區被格式化建立成socket

ext4(CentOS 6.7)文件系統後,建立文件系統通常生成兩部分:第一部分inode,第二部分是block。jsp

inode用來存儲文件屬性及信息索引(指向文件實體,但文件名稱不包含在inode),block用來存放實ide

際的數據使用(例如文字、照片、視頻等普通文件數據)。inode是一塊存儲空間,CentOS 6非啓動分

區inode默認大小爲256字節,CentOS 5 默認大小爲128字節。正常狀況下,一個文件只能佔用一個

inode,若是兩個文件的inode相同則說明是這兩個文件是互爲硬連接,也能夠是多個文件。inode節點

的總數通常在格式化時就給定。

 

查看系統分區及文件類型

[root@oldboy test]# df -Th

Filesystem     Type   Size  Used Avail Use% Mounted on

/dev/sda3      ext4   8.8G  1.4G  7.0G  17% /

tmpfs          tmpfs  491M     0  491M   0% /dev/shm

/dev/sda1      ext4   190M   36M  145M  20% /boot

 

查看指定文件inode

[root@oldboy test]# stat file.txt

  File: `file.txt'

  Size: 0               Blocks: 0          IO Block: 4096   regular empty file

Device: 803h/2051d      Inode: 139792      Links: 1

Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2018-11-13 16:58:45.989909373 +0800

Modify: 2018-11-13 16:58:45.989909373 +0800

Change: 2018-11-13 16:58:45.989909373 +0800

[root@oldboy test]# ls -lih file.txt

139792 -rw-r--r-- 1 root root 0 Nov 13 16:58 file.txt

 

查看系統分區inode使用狀況

[root@oldboy test]# df -i

Filesystem     Inodes IUsed  IFree IUse% Mounted on

/dev/sda3      593344 55764 537580   10% /

tmpfs          125596     1 125595    1% /dev/shm

/dev/sda1       51200    38  51162    1% /boot

[root@oldboy test]# dumpe2fs /dev/sda3 | grep -i "inode count"

dumpe2fs 1.41.12 (17-May-2010)

Inode count:              593344

 

不一樣CentOS版本inode大小不一樣(boot分區默認是128字節)

[root@localhost test]# cat /etc/redhat-release

CentOS release 5.5 (Final)

[root@localhost test]# dumpe2fs /dev/sda1 | grep -i "inode size"

dumpe2fs 1.39 (29-May-2006)

Inode size:              128

[root@localhost test]# dumpe2fs /dev/sda3 | grep -i "inode size"

dumpe2fs 1.39 (29-May-2006)

Inode size:              128

[root@oldboy test]# cat /etc/redhat-release

CentOS release 6.7 (Final)

[root@oldboy test]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda3       8.8G  1.4G  7.0G  17% /

tmpfs           491M     0  491M   0% /dev/shm

/dev/sda1       190M   36M  145M  20% /boot

[root@oldboy test]# dumpe2fs /dev/sda1 | grep -i "inode size"

dumpe2fs 1.41.12 (17-May-2010)

Inode size:               128

[root@oldboy test]# dumpe2fs /dev/sda3 | grep -i "inode size"

dumpe2fs 1.41.12 (17-May-2010)

Inode size:               256

 

 

block概述

 

  linux存儲設備或存儲分區被格式化建立成ext4(CentOS 6.7)文件系統後,建立文件系統

通常生成兩部分:第一部分inode,第二部分是block。inode前面已講述,。瞭解block先了

解sector(扇區)。硬盤的最小存儲單位:sector(扇區),每一個扇區儲存512字節,操做系統

會一次性連續讀取多個扇區,即一次性讀取多個扇區稱爲一個block(塊),文件存取的最小

單位:block(塊),由多個扇區組成;block的大小常見的有1KB、2KB、4KB,在linux中常見

設置爲4KB,即連續8個扇區組成一個block,/boot分區的block通常爲1KB。系統建立一個文件

或者文件佔大小一次固定分配4K(8個扇區,每一個扇區512B)

 

查看每一個分區的sector大小

[root@oldboy test]# df -l

Filesystem     1K-blocks    Used Available Use% Mounted on

/dev/sda3        9213440 1440588   7298180  17% /

tmpfs             502384       0    502384   0% /dev/shm

/dev/sda1         194241   35992    148009  20% /boot

 

查看分區指定的block大小

[root@oldboy test]# dumpe2fs /dev/sda3 | grep -i "block size"

dumpe2fs 1.41.12 (17-May-2010)

Block size:               4096

[root@oldboy test]# dumpe2fs /dev/sda1 | grep -i "block size"

dumpe2fs 1.41.12 (17-May-2010)

Block size:               1024

 

查看指定分區的扇區、磁道、柱面、磁頭等信息,磁盤的容量=磁頭*磁道*扇區(512B)*柱面

[root@oldboy test]# fdisk -l  /dev/sda3

Disk /dev/sda3: 9721 MB, 9721348096 bytes

255 heads, 63 sectors/track, 1181 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000

 

 

 

 

第二列:文件類型及權限

 

  文件類型及權限共有10個字符組成(第一個字符表明文件類型、後面9個字符表明文件權限),

假如把SElinux開啓,文件類型及權限共有11個字符(第一個字符表明文件類型、第2個到第10個字符

表明文件權限,第11個字符與selinux有關係,通常用不到)

 

第一個字符:

Linux的文件類型

  在linux系統中,能夠說一切設備(包括目錄、普通文件等)皆文件。文件類型包含有普通文件、目錄、字符設備文件、塊設備文件、符號連接文件、管道文件等等

 

一、 d(directory)表示目錄

[root@oldboy test]# ls -l /test/ | grep "^d"

drwxr-xr-x 2 root root 4096 Nov 14 19:24 dir1

drwxr-xr-x 2 root root 4096 Nov 14 19:24 dir2

drwxr-xr-x 2 root root 4096 Nov 14 19:24 dir3

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

drwxr-xr-x 2 root root 4096 Nov 14 19:24 /test/dir1

drwxr-xr-x 2 root root 4096 Nov 14 19:24 /test/dir2

drwxr-xr-x 2 root root 4096 Nov 14 19:24 /test/dir3

 

二、 -(regular file) 普通文件

(1)、純文本文件(ascll)文件內容能夠直接讀到的數據,例如:字母、數字、特殊字條串等,能夠用cat命令讀取的文,好比配置文件幾乎都是這種類型。

[root@oldboy test]# file file.txt

file.txt: ASCII text

 

(2)、二進制文件(binary)linux中的命令程序就屬於這個格式。例如cat 命令就是一個二進制文件。

[root@oldboy test]# file /bin/ls

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

 

(3)、數據格式文件(data)有些程序運行過程當中會讀取某些特定格式的文件,那些特定格式的文件能夠被稱爲數據文件。例如:linux 在用戶登陸時都會將登陸數據記錄在/var/log/wtmp 那個文件內,該文件是一個數據文件,經過last命令讀出來。/var/log/lastlog也是一個數據文件,可使用lastlog命令讀出來。cat命令讀取會是亂碼,由於他屬於一種特殊格式的文件。file 命令也能夠查看文件類型

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

/var/log/wtmp: data

 

三、l (link)連接文件(通常指得是軟連接文件或符號連接)

[root@oldboy test]# ls -l /mnt/file_hard_link.txt

lrwxrwxrwx 1 root root 14 Nov 14 19:38 /mnt/file_hard_link.txt -> /test/file.txt

[root@oldboy test]# readlink /mnt/file_hard_link.txt

/test/file.txt

 

四、 b(block)塊設備和其它外圍設備,是特殊類型的文件

[root@oldboy ~]# find /dev/ -type b | xargs ls -l | head -3

brw-rw---- 1 root disk   7,  0 Nov 12 23:12 /dev/loop0

brw-rw---- 1 root disk   7,  1 Nov 12 23:12 /dev/loop1

brw-rw---- 1 root disk   7,  2 Nov 12 23:12 /dev/loop2

 

五、 c(character)字符設備文件(通常是指串設備或終端設備等)

[root@oldboy ~]# find /dev/ -type c | xargs ls -l | head -3

crw-rw---- 1 root video    10, 175 Nov 12 23:12 /dev/agpgart

crw-rw---- 1 root root    251,   0 Nov 12 23:12 /dev/bsg/0:0:0:0

crw-rw---- 1 root root    251,   1 Nov 12 23:12 /dev/bsg/2:0:0:0

 

六、 s(socket)套接字文件

[root@oldboy ~]# find /dev/ -type s | xargs ls -l | head -3

srw-rw-rw- 1 root root 0 Nov 12 23:12 /dev/log

 

七、 p(named pipe)管道文件

[root@oldboy ~]# find /var/spool/postfix/public/ -type p | xargs ls -l

prw--w--w- 1 postfix postfix 0 Nov 14 19:52 /var/spool/postfix/public/pickup

prw--w--w- 1 postfix postfix 0 Nov 14 19:48 /var/spool/postfix/public/qmgr

 

Linux下擴展名的做用

在linux中,雖然擴展名沒什麼實際意義,但爲了兼容windows,同時方便咱們多數習慣了windows用戶區分文件的不一樣,因此仍是習慣經過擴展名來表示不一樣的文件類型,例如:

一、.tar\.tar.gz\.tgz\.zip\.tar.bz表示壓縮文件,建立命令通常爲tar\gzip\unzip等

二、.sh表示shell腳本文件,經過shell語言開發的程序

三、.pl表示perl語言文件,經過perl語言開發的程序

四、.py表示python語言文件,經過python語言開發的程序

五、.html\.htm\.php\.jsp\.do表示網頁語言文件

六、.conf表示系統配置文件

七、.rpm表示rpm安裝包文件

 

 

後面9個字符:

 

 

 

 

第三列:硬連接個數

 

文件連接分爲兩種,硬連接和軟連接(符號連接)。

硬連接文件與軟連接訪問圖形說明:

 

 

軟連接(符號連接)能夠看做是windows的快捷方式,可讓你快速找到目標文件,只是一個普通的文件,

但軟連接文件跟實際的原文件inode是不相同,軟連接能夠針對文件和目錄進行建立。

 

硬連接是經過原文件的索引節點進行連接的文件,也能夠理解爲經過原文件inode複製出來的一個文件。

硬連接和原文件的inode索引節點是相同的,硬連接只能夠針對文件進行建立,目錄建立不了(系統限制)。

每一個建立的目錄會自動建立兩個硬連接.和..可經過ls –a查看

 

連接建立命令

ln       原文件   目標文件      ##建立硬連接命令

ln  -s   原文件   目標文件     ##建立軟連接命令

 

硬連接建立

[root@oldboy test]# touch file

[root@oldboy test]# echo "testfile" > file

[root@oldboy test]# cat file

testfile

[root@oldboy test]# ln file file_hard_link

[root@oldboy test]# ls -lih

total 0

140988 -rw-r--r-- 2 root root 0 Nov 15 01:51 file

140988 -rw-r--r-- 2 root root 0 Nov 15 01:51 file_hard_link

[root@oldboy test]# cat file_hard_link

testfile

[root@oldboy test]# mkdir dir

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

drwxr-xr-x 2 root root 4096 Nov 15 01:52 dir/

[root@oldboy test]# ls -lid dir/ dir/.

140989 drwxr-xr-x 2 root root 4096 Nov 15 01:52 dir/

140989 drwxr-xr-x 2 root root 4096 Nov 15 01:52 dir/.

 

 

軟連接建立

[root@oldboy test]# touch file

[root@oldboy test]# echo "testfile" > file

[root@oldboy test]# cat file

testfile

[root@oldboy test]# ln -s file file_soft_link

[root@oldboy test]# ls -li

total 4

140988 -rw-r--r-- 1 root root 9 Nov 15 01:57 file

140989 lrwxrwxrwx 1 root root 4 Nov 15 01:57 file_soft_link -> file

[root@oldboy test]# cat file_soft_link

testfile

 

 

 

第四列:文件或目錄所屬用戶(用戶)

第五列:文件或目錄所屬用戶組(用戶組)

 

  Linux/Unix是一個多用戶、多任務的操做系統同,在linux系統系統用戶是分角色的,linux系統中,

因爲角色不一樣,權限和所完成的任務也不一樣,用戶的角色是經過UID和GID識別的,特別是UID,在linux

系統中,一個UID是惟一標識系統用戶的帳號(至關於咱們的身份證)。用戶的系統帳號的名稱(如oldboy)

其實給人(管理員)看的,linu系統可以識別的僅僅是UID和GID這樣的數字。用戶UID就至關於咱們的身份

證同樣,用戶名就至關於咱們的名字。

 

UID(User Identify)  中文用戶ID,至關於各位的身份證,在系統中是惟一的

GIP(Group Identify) 中文組ID,至關於各位的家庭或者大家的學校ID

 

Linux系統分爲三類用戶:

一、 超級用戶root

root(超級管理員),UID爲0,擁有最高的權限,相似windows系統的administrator本地管理員。root可使用sudo管理提權給普通用戶使用,至關於分配特殊權限給普通用戶使用。

二、 虛擬用戶

虛擬用戶,UID爲1~499,虛擬用戶通常與系統和程序服務相關,通常是默認不能登陸系統使用。

三、 普通用戶

通常是由具有系統管理員root權限用戶所建立,UID爲500~65534,這類用戶的權限會受到必定的基本權限限制,通常來自具有管理員用戶的限制。

 

查看用戶UID和GID命令

[root@oldboy ~]# id oldboy

uid=500(oldboy) gid=500(oldboy) groups=500(oldboy)

 

當建立一個用戶,如下配置文件會被修改

用戶配置文件         /etc/passwd

用戶密碼配置文件     /etc/shadow

用戶組配置文件       /etc/group

用戶組密碼配置文件   /etc/gshadow

 

一、用戶配置文件/etc/passwd 是系統識別用戶的一個文件,系統全部用戶都記錄在這裏/etc/passwd文件裏 

 

二、用戶密碼配置文件/etc/shadow是系統用戶密碼配置文件,與用戶配置文件/etc/passwd中x字段的佔位符相對應,記錄着用戶密碼等相關記錄。

 

 

三、用戶組配置文件/etc/group記錄用戶組相關信息。

 

 

四、用戶組密碼配置文件/etc/gshadow與用戶配置文件/etc/group中x佔位符相對應,記錄用戶組密碼相關信息。

 

 

 

 

第7、8、九列:文件或目錄的修改時間,默認月日時分

 

文件時間戳分三種:

modify   修改時間  find命令對應選項  -mtime   通常修改文件內容

change   改變時間  find命令對應選項  -ctime   文件的屬性改變

access    訪問時間  find命令對應選項  -actime  訪問文件內容

 

 

格式化時間:

[root@oldboy ~]# ls -l

total 44

-rw-------. 1 root root  1139 Sep  7 17:18 anaconda-ks.cfg

-rw-r--r--. 1 root root 22179 Sep  7 17:18 install.log

-rw-r--r--. 1 root root  5890 Sep  7 17:16 install.log.syslog

drwxr-xr-x  2 root root  4096 Nov 14 18:18 test

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

total 44

-rw-------. 1 root root  1139 2018-09-07 17:18 anaconda-ks.cfg

-rw-r--r--. 1 root root 22179 2018-09-07 17:18 install.log

-rw-r--r--. 1 root root  5890 2018-09-07 17:16 install.log.syslog

drwxr-xr-x  2 root root  4096 2018-11-14 18:18 test

 

修改時間戳命令:

[root@oldboy ~]# stat install.log

  File: `install.log'

  Size: 22179           Blocks: 56         IO Block: 4096   regular file

Device: 803h/2051d      Inode: 13          Links: 1

Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2018-09-07 17:12:50.634999903 +0800

Modify: 2018-09-07 17:18:05.290999679 +0800

Change: 2018-09-07 17:18:18.479999676 +0800

 

[root@oldboy test]# touch file.txt

[root@oldboy test]# echo "testfile" > file.txt

[root@oldboy test]# stat file.txt

  File: `file.txt'

  Size: 9               Blocks: 8          IO Block: 4096   regular file

Device: 803h/2051d      Inode: 140987      Links: 1

Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2018-11-17 13:33:09.362803892 +0800

Modify: 2018-11-17 13:33:57.626808703 +0800

Change: 2018-11-17 13:33:57.626808703 +0800

[root@oldboy test]# cat file.txt

testfile

[root@oldboy test]# stat file.txt

  File: `file.txt'

  Size: 9               Blocks: 8          IO Block: 4096   regular file

Device: 803h/2051d      Inode: 140987      Links: 1

Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2018-11-17 13:34:13.969814896 +0800

Modify: 2018-11-17 13:33:57.626808703 +0800

Change: 2018-11-17 13:33:57.626808703 +0800

[root@oldboy test]# chown oldboy.oldboy file.txt

[root@oldboy test]# stat file.txt

  File: `file.txt'

  Size: 9               Blocks: 8          IO Block: 4096   regular file

Device: 803h/2051d      Inode: 140987      Links: 1

Access: (0644/-rw-r--r--)  Uid: (  500/  oldboy)   Gid: (  500/  oldboy)

Access: 2018-11-17 13:34:13.969814896 +0800

Modify: 2018-11-17 13:33:57.626808703 +0800

Change: 2018-11-17 13:34:38.519806714 +0800

 

 

 

 

第十列:文件名

 

注意:文件名不包含在文件inode裏,而是在上級目錄的block裏

查看文件和目錄

[root@oldboy ~]# ls -lF

total 56

-rw-------. 1 root root  1139 Sep  7 17:18 anaconda-ks.cfg

-rw-r--r--. 1 root root 22179 Sep  7 17:18 install.log

-rw-r--r--. 1 root root  5890 Sep  7 17:16 install.log.syslog

-rw-r--r--  1 root root 10240 Nov 17 18:10 pack.tar

drwxr-xr-x  2 root root  4096 Nov 17 17:47 test/

 

 

 

 

 

感謝老男孩博客提供參考  https://blog.51cto.com/oldboy

相關文章
相關標籤/搜索