讓你10分鐘就能看懂Linux檔案許可權(超級詳細、超級簡單!!!)
引言
如果你遇到了修復web伺服器的檔案許可權問題,在網上搜尋後,有大佬告訴你需要遞迴地chmod 777 你的web目錄!
在這樣做之前,你很有必要了解chmod -R 777 到底做了什麼?
為什麼你永遠不應該將許可權設定為777?
本文解釋基本的Linux許可權模型以及與許可權對應的數字的含義
檔案許可權
在Linux中,對檔案的訪問由作業系統使用檔案許可權、屬性和所有權進行控制。
通過了解Linux檔案系統許可權模型,可以將對檔案和目錄的訪問限制為僅由授權使用者和程式訪問,從而使系統更加安全。
每個檔案由特定使用者和組擁有,併為三種不同類別的使用者分配許可權訪問權
一、不同類別
- 檔案所有者
- 群組成員
- 其他人(其他所有人)
有三種檔案許可權型別適用於每個使用者類,並允許指定允許哪些使用者讀取檔案、寫入檔案或執行檔案
二、相同的許可權屬性適用於含義不同的檔案和目錄
讀許可權
- 該檔案是可讀的。例如,設定讀取許可權後,使用者可以在文字編輯器中開啟檔案
- 可以檢視目錄的內容。使用者可以使用ls命令列出目錄中的檔案
寫許可權
- 可以更改或修改該檔案
- 可以更改目錄的內容。使用者可以建立新檔案、刪除現有檔案、移動檔案、重新命名檔案等
執行許可權
- 可以執行該檔案
- 可以使用cd命令進入該目錄
可以使用 ls 命令檢視檔案許可權
例:
[root@localhost ~]# ls -l test.txt
輸出內容如下:
-rw-r--r--. 1 root root 465 Dec 22 17:46 fstab
三、詳細許可權引數含義
第一個字元顯示檔案型別
它可以是常規檔案(-)、目錄(D)、符號連結(L)或任何其他特殊型別的檔案
接下來的9個字元表示檔案許可權
三個三元組,每個三個字元。
第一個三元組顯示所有者許可權
第二個三元組顯示組許可權
最後一個三元組顯示所有其他許可權
四、許可權數字:
檔案許可權可以用數字或符號格式表示。
在本文中,我們將重點介紹數字格式。
許可權可以由三位或四位數字組成,範圍從0到7。
當使用3位數字時,第一位代表檔案所有者的許可權,第二位代表檔案組的許可權,最後一位代表所有其他使用者的許可權。
寫入、讀取和執行許可權具有以下數字值
-
r (讀) = 4
-
w (寫) = 2
-
x (可執行) = 1
-
無許可權 = 0
特定使用者類的許可權數字是該類的許可權值之和。
許可權的每個數字可以是4、2、1 和 0 的和
-
0(0+0+0)-沒有許可權
-
1(0+0+1)-僅執行許可權
-
2(0+2+0)-僅寫入許可權
-
3(0+2+1)-寫入和執行許可權
-
4(4+0+0)-只讀許可權
-
5(4+0+1)-讀取和執行許可權
-
6(4+2+0)-讀寫許可權
-
7(4+2+1)-讀取、寫入和執行許可權
例如,如果許可權設定為750,則表示檔案所有者有讀、寫、執行許可權,檔案組有讀、執行許可權,其他使用者沒有許可權
-
屬主:rwx=4+2+1=7
-
屬組:r-x=4+0+1=5。
-
其他:—=0+0+0=0
當許可權使用4位數字時,第一個數字的含義如下
-
setuid = 4
-
setgid = 2
-
sticky = 1
-
no changes = 0
接下來的三位數的含義與使用三位數時相同。
如果第一位數字為0,則可以省略,模式可以用3位數字表示,例如0755與755相同。
要以數字(八進位制)表示法檢視檔案的許可權,請使用stat命令:
[root@localhost ~]# stat -c "%a" test.txt
755
輸出數字:755
注意:永遠不要 chmod 777對檔案或目錄設定777許可權意味著它將對所有使用者都是可讀、可寫和可執行的,並且可能會帶來巨大的安全風險
五、例如
如果你以遞迴方式將 /var/www目錄下所有檔案和子目錄的許可權更改為777
則系統上的任何使用者都可以建立、刪除或修改該目錄中的檔案。
如果你的Web伺服器遇到許可權問題,請將檔案的所有權更改為執行應用程式的使用者,並將檔案的許可權設定為644,將目錄的許可權設定為755,而不是遞迴地將許可權設定為777。
六、chmod和chown
1、使用chmod命令更改許可權
建立一個檔案,查詢其許可權,分別用兩種方式修改許可權後再次檢視(chmod)
[root@localhost ~]# touch xxgc.txt
[root@localhost ~]# ll xxgc.txt
-rw-r--r--. 1 root root 0 Dec 22 19:03 xxgc.txt
[root@localhost ~]# chmod a+x xxgc.txt
[root@localhost ~]# ll xxgc.txt
-rwxr-xr-x. 1 root root 0 Dec 22 19:03 xxgc.txt
[root@localhost ~]#
[root@localhost ~]# chmod 777 xxgc.txt
[root@localhost ~]# ll xxgc.txt
-rwxrwxrwx. 1 root root 0 Dec 22 19:03 xxgc.txt
[root@localhost ~]#
2、使用chown命令更改檔案所有權
將剛剛的 xxgc.txt 檔案的所有者和所有組都改為edc(chown)
[root@localhost ~]# ll xxgc.txt
-rwxrwxrwx. 1 root root 0 Dec 22 19:03 xxgc.txt
[root@localhost ~]# chown edc:edc xxgc.txt
[root@localhost ~]# ll xxgc.txt
-rwxrwxrwx. 1 edc edc 0 Dec 22 19:03 xxgc.txt
[root@localhost ~]#
假設您的伺服器上有一個PHP應用程式以使用者“harry”身份執行
要設定要執行的正確許可權,請執行以下操作
[root@localhost ~]# chown -R harry: /var/www/
[root@localhost ~]# find /var/www/ -type d -exec chmod 755 {} \;
[root@localhost ~]# find /var/www/ -type f -exec chmod 644 {} \;
[root@localhost ~]#
七、注意
只有root使用者、檔案所有者或具有sudo許可權的使用者才能更改檔案的許可權
使用chmod時要格外小心,特別是在遞迴更改許可權的時候
八、最後
如果你管理的是Linux系統,瞭解Linux許可權是如何工作的非常重要
永遠不要設定777(rwx rwx rwx)許可權、檔案和目錄許可權
777意味著任何人都可以對這些檔案做任何事情
相關文章
- 超級詳細的mac系統檔案許可權修改指南Mac
- 超級簡單:在asp.net中限制下載檔案的訪問許可權ASP.NET訪問許可權
- vue vuex vue-router後臺專案——許可權路由(超詳細簡單版)Vue路由
- Linux 系統中的超級許可權的控制Linux
- iOS超級超級詳細介紹GCDiOSGC
- 超級簡單的實現window共享Linux檔案Linux
- 超詳細的Servlet教程,10分鐘帶你認識servletServlet
- linux檔案許可權 詳解Linux
- Linux檔案許可權詳解Linux
- 超級詳細Tcpdump 的用法TCP
- Linux提權-許可權升級Linux
- 超詳細mac新手教程,讓你離熟練操作mac只需十分鐘!Mac
- Gate 超級管理員擁有全部許可權踩坑點
- HIVE的許可權控制和超級管理員的實現Hive
- SVG基礎教程(超級詳細)SVG
- (轉)超級詳細Tcpdump 的用法TCP
- 超級詳細Tcpdump 的用法(轉)TCP
- linux 檔案許可權 s 許可權和 t 許可權解析Linux
- Linux常用檔案許可權命令詳解Linux
- Linux檔案許可權Linux
- Linux 檔案許可權Linux
- Spring AOP全面詳解(超級詳細)Spring
- Java註解最全詳解(超級詳細)Java
- :SpringBoot專案接入ELK超級版(超詳細圖文教程)Spring Boot
- 一個簡單的Vue按鈕級許可權方案Vue
- django許可權之二級選單Django
- java集合梳理【10】— Vector超級詳細原始碼分析Java原始碼
- HTML 超級連結詳細講解HTML
- 超級詳細的tcpdump用法介紹TCP
- 如何讓你的機器學習玩超級瑪麗機器學習
- 大檔案的排序和去重 超級簡單的實現排序
- 超級實用!React-Router v6實現頁面級按鈕許可權React
- 10分鐘簡單學習net core整合jwt許可權認證,快速接入專案落地使用JWT
- http 協議集合,超級簡單HTTP協議
- [svc]linux檔案許可權Linux
- Linux檔案基本許可權Linux
- linux 檔案許可權管理Linux
- linux許可權簡單介紹Linux