# Linux文件和目錄的屬性及權限
[TOC]
## 文件屬性概述
Linux系統中文件和目錄的屬性主要包括:文件或目錄的索引節點(inode)、類型、權限屬性、鏈接數、所歸屬的用戶和用戶組、最近修改時間等內容。
~~~
# ls -lhi
總用量 4.0K
317015 drwxr-xr-x 2 root root 4.0K 10月 20 17:17 test
~~~
**詳解如下:**
| 列數 | 值 | 解釋 |
| -- | -- | -- |
| 第一列 | 317015 | inode索引節點 |
| 第二列 | drwxr-xr-x | 文件類型及權限 |
| 第三列 | 2 | 硬鏈接個數 |
| 第四列 | root | 文件或目錄的屬主 |
| 第五列 | root | 文件或者目錄所屬的用戶所歸屬組 |
| 第六列 | 4.0K | 文件或者目錄的大小 |
| 第七、八、九列 | 10月 20 17:17 | 文件或目錄的修改時間 |
| 第九列 | test | 實際的文件名或目錄名 |
### 文件屬性舉例說明
`317015 -rw-r--r-- 1 root root 0 10月 20 17:42 test`
**inode索引節點編號**:317015
**文件類型**:文件類型-表示普通文件
**文件權限**:文件權限是`rw-r--r--`,表示文件屬主可讀、可寫、可執行,文件所歸屬的用戶組可讀可執行,其他用戶可讀可執行。
**硬鏈接個數**:表示test這個文件沒有其他的硬鏈接,因為鏈接數為1,就是它本身。
**文件屬主**:這個文件所屬的用戶,即test文件被root用戶擁有,是第一個root
**文件屬組**:這個文件所屬的用戶組,
上述文件為root,是第二個root;
**文件大小**:文件大小為0字節;
**文件修改時間**:這里的時間是該文件最后被更新(包括文件創建、內容更新、文件名等),可使用如下命令查看文件的修改、訪問以及創建時間:
~~~
# stat test
File: "test"
Size: 0 Blocks: 0 IO Block: 4096 普通空文件
Device: 803h/2051d Inode: 317015 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2015-10-20 17:42:15.000000000 +0800
Modify: 2015-10-20 17:42:15.000000000 +0800
Change: 2015-10-20 17:42:15.000000000 +0800
~~~
## 索引節點inode
inode中文意思是索引節點,每個存儲設備或存儲設備的分區(存儲設備可以是硬盤、軟盤、U盤...)被格式化為文件系統后,都應該有兩部分:一部分是inode,另一部分是Block。Block是用來存儲數據用的,而inode就是用來存儲這些數據信息,這些信息包括文件大小、屬主、歸屬的用戶組、讀寫權限等。
inode為每個文件進行信息索引,所以就有了inode的數值。錯左系統根據指令能通過inode值最快的找到相對應的文件。
### inode值相同的文件是硬鏈接文件
在Linux文件系統中,inode值相同的文件是硬鏈接文件。也就是說不同的文件名,inode的值可能是相同的,一個inode值可以對應多個文件,在Linux中,鏈接文件是通過ln命令來創建的。
# Linux中文件的權限
每個文件或目錄都有一組共9個權限位,每三位被分為一組,他們分別是屬主權限為(占三個字符)、用戶組權限位(占三個字符)、其他用戶權限位(占三個字符)。比如`rwxr-xr-x`,在linux中正式這9個權限位來控制文件屬主、用戶組以及其他用戶的權限。
## 權限位說明
Linux文件或目錄的權限位是由9個權限位來控制,每三位為一組,他們分別是文件屬主(ower)的讀、寫和執行,用戶所屬主(group)的讀、寫和執行,以及其他用戶(other)的讀、寫和執行。
~~~
文件屬主 : 讀r 寫w 執行x
文件屬組 : 讀r 寫w 執行x
其他用戶 : 讀r 寫w 執行x
如果權限位不可讀、不可寫、不可執行,則用-表示
~~~
### Linux普通文件的讀、寫、執行權限
~~~
可讀r:表示具有讀取閱讀文件內容的權限;
可寫w:表示具有新增、修改文件內容的權限(溫馨提示:刪除、修改和移動的權限受父目錄的權限控制)
可執行x:表示具有執行文件的權限
~~~
### Linux目錄的讀、寫、執行權限
~~~
進入目錄的權限 x
瀏覽目錄的權限 r
修改目錄內文件的權限 w
~~~
### Linux文件與目錄權限對比說明:
1. **r(read,讀取權限)**
對文件而言,表示具有讀取閱讀文件內容的權限;
對目錄而言,表示具有瀏覽目錄的權限(*注意:與進入目錄的權限不同*)
2. **w(write,寫入權限)**
對文件而言,表示具有新增、修改文件內容的權限(*注意:刪除和移動文件和文件本身屬性無關*)
對目錄而言。表示具有刪除、移動目錄內的文件的權限。
3. **x(exectue,執行權限)**
對于文件而言,表示具有執行文件的權限;
對與目錄而言,表示具有進入目錄的權限。
4. **-(無任何權限)**
若對應位置權限位為字符"-",表示對應用戶沒有讀、寫、執行的任何權限。
>[danger]
當刪除或移動一個文件或目錄,僅與該文件和目錄所在的上一層目錄權限有關,與該文件本身屬性無任何關系;
對于文件來說,寫文件是修改文件,而不是刪除文件,因此寫文件是與該文件的本身屬性有關。
- Linux的安裝
- Linux的軟件安裝管理
- Linux零碎的命令
- 了解ssh
- 系統調優及安全設置
- Linux系統中的硬鏈接和軟連接
- Linux文件和目錄的屬性及權限
- 命令總結
- 文件目錄管理命令
- cat
- cd
- cp
- ls
- mkdir
- mv
- rm
- touch
- vi
- 硬件檢測內核shell命令
- echo
- alias
- dd
- diff
- date
- grep(重要)
- head
- rpm
- sed(重要)
- tree
- unalias
- yum
- seq
- su
- less
- more
- tail
- awk(重要)
- pwd
- history
- whoami
- find(重要)
- which
- vimdiff
- sudo
- wget
- ln
- chmod
- chown
- vim常用技巧
- scp
- 工作場景應用總結
- 自動刪除n天前日志
- 刪除一個目錄下的所有文件但保留一個文件
- Linux軟件安裝
- php安裝(apache版本)
- vsftpd安裝
- git安裝
- python安裝
- LNMP安裝
- LAMP安裝I
- LAMP安裝II
- svn安裝
- svn在Linux下的命令操作
- svn鉤子簡介
- svn代碼上傳流程
- Crond介紹
- sersync應用指南
- 其他
- 小結一
- 系統調優重新整理tmp
- linux禁止root用戶直接登錄sshd并修改默認端口