linux下 "chmod 777" 中777這個數字是怎麼出來的

引言

相信很多同學在Linux上執行命令或者寫入文件甚至讀取文件的時候都會遇到一個錯誤“Permission denied”,大家一般都會使用“chmod 777”這個命令來消除錯誤獲取權限,那麼大家思考過爲什麼是777這個數字嗎,這個數字是如何得出的?看完這篇文章後相信大家就會對Linux下的權限相關有了非常詳細的瞭解,也可以針對各種情況獲取相對應的權限。

Linux下的用戶與羣組的概念

大家應該或少的都知道Linux是一個允許多用戶的操作系統,那麼大家有沒有了解過Linux下的用戶分爲哪幾種呢?說到這裏,我們就要提一句話“在Linux中任何東西都是文件”,所以可以看出,Linux是以文件爲核心的一個操作系統,那麼回到用戶類型的問題上來,答案就是Linux的用戶分爲三種,分別是owner、group、others,翻譯成中文就是所有者、羣組、其他。針對每個文件都有着owner、group、others的三個身份所對應的權限。

Linux下的文件權限類型以及如何查看文件的權限

相信大家都使用過ls命令吧,有時候大家在執行ls -al的時候有沒有想過每個文件前面那一大段是什麼意思呢?,現在我們就來解析一下。舉個例子

clipboard.png

這裏大概的簡要說明一下
第一欄表示文件的類型以及權限,第二欄表示有多少文件鏈接到這個節點,第三欄表示文件的所有者,第四欄表示文件的group,第五欄則是文件的大小,第六欄就文件的最後修改時間,接下來就是文件的名稱

我們這篇文章的關注重點是第一欄,舉個例子,拿main.go來說,第一欄文件類型和權限的表示是"-rw-r--r--",這是什麼意思呢,我們將這一串字符拆解成第一個、第2-4個、第5-7個以及第8-10個字符,先說說第一個字符,表示的是文件的類型,"-"表示這個是一個文件,“d”表示這是一個目錄,“l”則表示這是一個鏈接文件,當然還有其他的類型,這裏我們暫且不關注。
接下來就是拆分的三個字符串,他們是什麼意思呢?還記得我們上面講過的owner、group、others嗎,這三串字符就是分別表示的這個文件對應這三個身份的的權限。下面我們來講解一下單個權限字符對應的意思

rwx是什麼意思

上面我們看到,有的文件權限是rwx,有的卻是rw-,有的是r--,這是什麼意思呢?我們先來說一下rwx三個字符分別代表什麼,“r”表示可讀,即read。“w”表示可寫,即“write”。“x”表示可執行。在Linux下一組完整的權限必須是三個字符同時出現的。並且他們的順序是不會變的,這是什麼意思呢,表示不管在任何時候,我們都應該三個三個的去看權限,如果沒有某個權限則需要用“-”代替,現在我們知道了,第一欄的第一個字符表示的是文件的類型,接下來每三個字符表示對應身份的權限,拿main.go舉例,他是一個文件,owner擁有讀寫權限沒有執行權限,group有用可讀的權限沒有寫以及執行權限,others也是擁有可讀權限沒有寫及執行權限。

如何更改文件的權限

還記的我們上面的三種身份嗎,那麼對應的,更改一個文件的權限也有三種方式,分別是:
chgrp :改變文件所屬羣組
chown :改變文件擁有者
chmod :改變文件的權限
這裏我們只說chmod,回到文章的標題來,777這個數字是什麼出現的呢。首先我們要知道個權限對應的分值,r:4、w:2、x:1,權限就是對應分值的相加,比如rwx就是4+2+1=7,rw-就是4+2+0=6,現在大家明白777是什麼意思了嗎?就是分別爲三種身份賦予rwx的權限,777這個數字就是這麼算出來的。

結語

相信大家通過這篇文章會對Linux的用戶以及權限有一個瞭解,以後在工作學習中也可以按照自己的需求制定權限啦,而不是一味地使用777。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章