Linux許可權 Linux系統上對文件的許可權有著嚴格的控制,如果想對某個文件執行某種操作,必須具有對應的許可權才可執行成功。 Linux下文件的許可權類型一般包括讀,寫,執行。對應字母為 r、w、x。Linux下許可權的粒度有 擁有者 、所屬組 、其它人 三種。每個文件都可以針對三個粒度,設置不同的rwx ...
Linux許可權
Linux系統上對文件的許可權有著嚴格的控制,如果想對某個文件執行某種操作,必須具有對應的許可權才可執行成功。
Linux下文件的許可權類型一般包括讀,寫,執行。對應字母為 r、w、x。Linux下許可權的粒度有 擁有者 、所屬組 、其它人 三種。每個文件都可以針對三個粒度,設置不同的rwx(讀寫執行)許可權。通常情況下,一個文件只能歸屬於一個用戶和組, 如果其它的用戶想有這個文件的許可權,則可以將該用戶加入具備許可權的群組,一個用戶可以同時歸屬於多個組。
我們先來瞭解文件的類型
在Linux下輸入ll 即可查看文件類型
Linux系統下,不是以文件尾碼區分文件類型的,而是以ll顯示的第一個字元區分文件類型。
Linux系統下,文件類型有:
- .- 普通文件、文本、源代碼、可執行程式、第三方動靜庫
- .d 目錄文件
- .c 字元設備文件
- l 鏈接文件
- p 管道文件
- .b 塊設備文件,磁碟
許可權=人+事物
Linux系統中,人分三類
- 文件的擁有者 owner
- 文件的所屬組 grouper
- 文件的其他用戶 other
個人覺得者三者可以換種說法更好理解
擁有者:我 所屬組:我的團隊 其他用戶:其他人
Linux系統中,文件的許可權屬性
- r(讀)
- w(寫)
- x(可執行)
這裡需要註意 人與root和普通用戶是不衝突的,並且是相互補充的。
root可是擁有者、所屬組、其他用戶
普通用戶也可以是擁有者、所屬組、其他用戶
文件許可權的修改
一:更改文件屬性許可權
chmod 修改文件屬性許可權 (兩種方法)
chmod u+rwx,g+rwx,o+rwx Linux.text
(u代表擁有者的許可權,g代表所屬的許可權,o代表其他人的許可權)
這段代碼代表 講擁有者,所屬組,其他人的許可權全改為可讀,可寫,可執行
原來的許可權
修改
修改後(這裡之所以變顏色,是因為許可權改為了可執行,所以會變綠色)
當然 也有更方便的方法
這裡我們先講此文件所有的許可權,全部去掉
這裡我再將它的所有許可權啟用
第二種修改文件許可權方法
用八進位(理解上可以當作二進位)
chmod 777 Linux.txt 一個7代表擁有者,以此類推
7為 3種許可權均開 0為三種許可權均關 3為開啟w,x(寫,執行) 4代表開始r(讀) 5代表r,x(讀,執行)
以這些數組組合 我這裡舉個慄子 : 745 代表:擁有者:三種許可權均開 rwx 所屬組代表開啟 r 其他人代表開啟r,x 合起來就為 -rwxr----x
附加:如果我想進入一個目錄,需要什麼許可權?
答:x(可執行許可權) (易錯,常考)
總結:兩種方法 第一種較麻煩,但更直觀,第二種方法較方便,但不易於觀察 (兩種方法各有優缺點,適合自己的才最重要)root可以直接無視所有許可權!!!
修改文件擁有者/所屬組
因為修改這種許可權是需要提高許可權的,要用到sudo 但使用這個代碼是需要配置文件,添加親近用戶的,較麻煩
當然,那可以直接進入root,修改這些
在root用戶下
修改擁有者 chown(註意不是chmod)
將此文件的擁有者修改為 xxx (其他的普通用戶)
修改所屬組
將此文件的所屬組修改為 xxx
兩個也可以連起來
將擁有者修改給xxx1,所屬組修改給xxx2
附加:文件的床架你這和擁有者一定是同一個人嗎?
答:不一定,可以創建後給其他人(常考!)
附加:一個文件的擁有者,不一定能用上這個文件對嗎?
答:對,我在一個目錄下的一個文件的擁有者給你,但目錄的訪問許可權(x)不給你 ,你照樣訪問不了這個文件
比方說:有一個房間內的電腦是你的,但房間的鎖住的,鑰匙不給你, 你進不去這個房間,照樣用不上這臺電腦
如果目錄沒有r許可權,允許進入,允許在該目錄下創建(寫入)一個文件,不允許查看。
如果目錄沒有w許可權,允許進入,允許在該目錄下查看文件列表,但是不允許創建文件。
如果同時沒有rw許可權,允許進入,但不允許創建和查看目錄下的文件的列表(不是文件內容!文件內容是否可以查看,文件自己的許可權決定)
許可權掩碼的認識
許可權掩碼的作用是根據用戶的需求屏蔽掉不希望給別人的許可權,比如普通文件的許可權是“-rw-rw-rw-”,所有用戶對文件都享有讀寫許可權,而這帶來的問題就是文件可以被任何人修改從而導致文件數據被篡改導致數據丟失。 這個時候用戶可以通過設置文件掩碼來屏蔽到本需要賦予其他用戶的特定許可權。 許可權掩碼在每個Linux系統里都有預設值,多數為0022或0002,當然用戶也可以自己修改許可權掩碼的值。
比方說,我們先隨便創建一個文件,查看它初始的許可權是什麼
這個可以叫做初始許可權或者最終許可權
一般普通文件預設許可權為666 (rw-rw-rw-)目錄文件預設許可權為 777 (rwxrwxrwx)
那為什麼不同呢?因為 最終許可權=預設許可權 & (~umask) 公式
比如許可權掩碼為0002 普通許可權為 666
先按位取反許可權掩碼 000 000 010 取反 111 111 101 再與預設許可權按位與 (&)(兩個二進位都為1時,結果位才為1)
110 110 110 預設許可權
111 111 101 許可權掩碼
------------------ 按位與 & (兩個二進位都為1時,結果位才為1)
110 110 100 即 664 即 rw-rw-r--
粘滯位
粘滯位(Stickybit),又稱粘著位,是Unix文件系統許可權的一個旗標。最常見的用法在目錄上設置粘滯位,
也只能針對⽬錄設置,對於⽂件⽆效。則設置了粘滯位後,只有目錄內文件的所有者或者root才可以刪除或移動
該文件。如果不為目錄設置粘滯位,任何具有該目錄寫和執行許可權的用戶都可以刪除和移動其中的文件。實際應
用中,粘滯位一般用於/tmp目錄,以防止普通用戶刪除或移動其他用戶的文件。
在Linux系統中⽐較典型的例⼦就是“/tmp”、 “/var/tmp”⽬錄。這兩個⽬錄作為Linux系統的臨時⽂件
夾,許可權為“rwxrwxrwx”,即允許任意⽤戶、任意程式在該⽬錄中進⾏創建、刪除、移動⽂件或⼦⽬錄等操作
簡單來說 給一個目錄附上粘滯位 可以防止普通用戶刪除文件
這個目錄的文件只能由:超級管理員刪除,該魯莽的所有這,該文件的所有者
那怎麼給目錄附上粘滯位呢?
只需要在其他人加上t即可
可以看出,許可權就多了一個t
file指令
功能:查看更詳細的文件類型
- -b 列出辨識結果時,不顯示文件名稱。
- -c 詳細顯示指令執行過程,便於排錯或分析程式執行的情形。
- -f<名稱文件> 指定名稱文件,其內容有一個或多個文件名稱時,讓file依序辨識這些文件,格式為每列一個文件名稱。
- -L 直接顯示符號連接所指向的文件的類別。
- -m<魔法數字文件> 指定魔法數字文件。
- -v 顯示版本信息。
- -z 嘗試去解讀壓縮文件的內容。
- [文件或目錄...] 要確定類型的文件列表,多個文件之間使用空格分開,可以使用shell通配符匹配多個文件。
這就本篇的全部內容,如果對您有所幫助,希望能獲得您的點贊,您的點贊就是對我的最大支持!