寫在前面
我們都知道Linux是一個支持多用戶、多任務的系統,這也是它最優秀的特性,即可能同時有很多人都在系統上進行工作,所以千萬不要強制關機,同時,為了保護每個人的隱私和工作環境,針對某一個文檔(文件、目錄),Linux系統定義了三種身份,分別是擁有者(owner)、群組(group)、其他人(others),每一種身份又對應三種權限,分別是可讀(readable)、可寫(writable)、可執行(excutable),通過這樣的設計就可以保證每個使用者所擁有數據的隱密性。
文檔屬性
使用命令ls -al --full-time,或者此命令的簡寫ll可以查看文件或者目錄的所有屬性。如下:

從上面可以看到,每一行都有7列,分別是:
變更擁有者(owner)
位置
etc/passwd

注意:必須是該位置下已存在的帳號。也就是在/etc/passwd中有記錄的擁有者才能改變。
語法
chown [-R] [帳號名稱] [文件或目錄]
chown [-R] [帳號名稱]:[群組名稱] [文件或目錄]
備注:此命令也可以順便變更文檔群組,但還是建議使用chgrp命令來變更文檔群組。
選項
-R 遞歸變更,即連同次目錄下的所有文件(夾)都要變更。
用法
chown daemon test 變更文件夾test賬號為daemon。

chown daemon:root test 變更文件夾test群組為root。

chown root.users test 變更文件夾賬號為root,群組為users

chown .root test 單獨變更群組為root

備注:雖然也可以在擁有者與群組間加小數點(.),但為了避免有的同學命名中帶點,故還是建議使用冒號“:”來隔開擁有者與群組,避免誤判。
變更群組(group)
位置
etc/group

備注:從這里可以查看到所有群組
語法
chgrp [-options] [群組名] [文檔路徑]
備注:關于options,可以通過man chgrp、info chgrp、chgrp --help等命令查詢詳細用法。
用法
chgrp -R users test 改變test文件夾及其所有子文件(夾)的群組為users。

注意:群組名稱不在位置內,將會報錯invalid group。

變更權限
Linux文檔的基本權限就三個,分別是read/write/execute,加上身份owner/group/others也一共也只有九個。權限變更的方式有2種,分別是符號法和數字法。
符號法
分別使用u,g,o來代表三種身份,a表示全部身份;分別使用r、w、x表示三種權限;分別使用+、-、=表示操作行為
語法
chmod | u g o a | +(加入) -(除去) =(設置) | r w x | 文檔路徑
設置權限(=)
變更目錄test的權限為任何人都可讀、寫、執行。
chmod u=rwx,g=rwx,o=rwx test
或
chmod ugo=rwx test
或
chmod a=rwx test

去掉權限(-)
去掉目錄test執行權限
chmod u-x,g-x,o-x test
或
chmod ugo-x test
或
chmod a-x test

備注:執行權限(x),對目錄而已就是其他用戶能否cd test成為工作目錄。
添加權限(+)
增加目錄test執行權限
chmod u+x,g+x,o+x test
或
chmod ugo+x test
或
chmod a+x test

備注:很熟悉吧,如果我們編寫完一個shell文件test.sh后,通過chmod a+x test.sh就添加了文件執行權限。
數字法
顧名思義,就是使用數字來代表權限,r,w,x分別為4,2,1。三種權限累加就可以得出一種身份的權限。
設置目錄test的權限為任何人都可讀、寫、執行。
chmod 777 test

設置目錄test的權限為任何人都可讀、寫。
chmod 666 test
賦予一個shell文件test.sh可執行權限,擁有者可讀、寫、執行,群組賬號和其他人可讀、執行。
chmod 755 test
備注:有沒有發現數字法更簡單啊!!!
文件和目錄權限差異
文檔權限對于文件和目錄有巨大的差異
文件
針對的是該文件內容
備注:具有w權限不并不代表可以刪除文件,刪除文件是目錄權限控制的范圍。那是因為目錄的相關權限及屬性是記錄到目錄的inode,而目錄下的所有文件的名稱和對應的索引文件(inode)號碼又是記錄到目錄所屬的block中,所以當我們讀取某個文件時,必須先讀到目錄的inode,然后再讀取目錄的block信息,拿到待讀取文件的索引信息,即具體存儲在哪個block上,最后才能讀到文件內容(這塊內容,需要先理解Linux的文件系統,比如Ext2/Ext3/Ext4,后面我們會詳細介紹) ------ 先記住文件權限僅僅對文件內容有效。
示例說明
使用root身份讀取目錄test001下的文件test001-1查看目錄物理全路徑:pwd

列出有關的目錄和文件:ll -di / /root /root/test001 /root/test001/test001-1
通過man ls 查看-i,全稱inode,即 print the index number of each file

由于使用的是root身份,具有讀取任何文檔的權限。如果,使用一般賬號,上面每一個步驟的讀取,還會匹配權限。
目錄
針對的是該目錄下的文件對象
備注:從上面可以得出,開放目錄給任何人瀏覽時,至少需要賦予r或x權限。讀取目錄文件內容,至少需要目錄權限x和文件權限r。
總結
Linux的每個文檔可以分別針對三種身份賦予rwx權限;chgrp命令變更文件群組,chmod命令變更文件權限,chown變更文件擁有者;那么如何運用這些屬性和權限來保證每個租戶數據的安全性和隱密性,請看下一篇,Linux如何管理文檔多租戶進行實戰練習。
如果你覺得本篇文章對您有幫助的話,感謝您的【推薦】。
新聞熱點
疑難解答