linux是一個多用戶,多任務的操作系統,對于每一個文件它的屬性中都包括:文件所有者(owner),文件所屬組(group),其他用戶(other),還必須具備與這三個角色對應的讀,寫,執行的權限,如下圖:

在tmp目錄下面有一個a.txt文件,我們通過ls -l命令可以查看其詳細信息:
-:表示普通文件,d:表示目錄文件,l:鏈接文件,b:設備文件中可以供存儲的接口設備,c:設備文件中串行端口設備如鍵盤。
由于最前面是-:所以a.txt是普通文件。
再看 rw-r--r--部分,我們將其分為三組,分別對應文件所有者,文件所屬組,其他用戶的權限.
其中r代表讀取權限,w:代表寫權限,x:代表執行權限(這里沒出現),-:代表沒有某種權限。
那對上面的權限的解釋就是:
owner:可以讀和寫,不能執行
group:可以讀取不能寫,不能執行
other:可以讀取,不能寫,不能執行
第一個root代表文件所有者,第二個root代表文件所屬組
那么現在我如果想修改文件所有者,文件所屬組,文件權限該怎么做,請繼續向下閱讀:
chgrp:修改用戶所屬組,chown:修改文件所有者,chmod:修改文件權限
假設我的系統中又一個叫gavin的組(通過/etc/group查看)

如上圖,通過chgrp命令將該文件的group修改為了gavin
下面修改其所有者:

修改其權限:

chmod 777 a.txt 這個777代表什么?
在linux中使用數字代表權限:
r:4 w:2 x:1
r-- =4+0+0=4;
rw- =4+2+0=6;
rwx =4+2+1=7
相信寫到這里大家都應該明白了吧。
權限對于文件和文件夾的意義是不一樣的,
對于文件:
r:代表可以讀取文件的內容,w:代表可以修改文件的內容,x:可以執行這個文件
對于文件夾:
r:可以獲取文件夾中又哪些文件,w:可以添加和刪除文件夾中的內容,x:可以進入文件夾,
如果某個角色對于一個文件夾的權限是rw-;
那么他僅僅可以使用ls獲取文件夾中的內容,但是不可以使用cd進入該文件夾。
文件的權限告一段落,現在來看看linux中的那些常見目錄中的內容:
/bin 系統有很多放置執行文件的目錄,但是/bin比較特殊,因為/bin放置的是在單用戶維護模式下還能夠被操作的命令,在/bin下面的命令可以被root和一般賬戶使用,如:cat,chmod,chown,data,mv,mkdir,cp ,bash等常用命令。
/boot 主要放置開機使用到的文件
/dev 在linux系統中任何設備與接口設備都是以文件的形式存在于這個目錄當中,你只要訪問某個文件就相當于訪問該設備
/etc 系統的主要配置文件幾乎都在這個文件夾類。
/home 這是系統默認的用戶主文件夾
/lib 系統的函數庫非常多,二/lib放置的是開機會使用到的函數庫
/mnt 如果你想臨時掛在一些外部設備(光盤)一般建議放置到這個目錄。
/opt 這是給第三方軟件放置的目錄
/root 系統管理員的主文件夾
/tmp 這是讓一般用戶或者正在執行的程序放置文件的地方,這個目錄是任何人都可以訪問的,所以你需要定期清理一下,當然重要數據時不能放到這里來的。
關于文件權限的最后一點就是:文件默認權限umask
現在我們已經知道如何新建或者改變一個目錄的屬性了,不過你知道當你新建一個新的文件或則目錄是,它的默認權限是什么嗎?那就是于umask這東西有關了,那么umask是在搞什么呢,基本上,umask就是制定目前用戶在新建文件或目錄的時候權限的默認值,如果獲得或設置umask,方法如下:
#umask 或則 umask -S

(四位數,第一位我們先不管,表示特殊權限,我們從第二位開始看起)
在默認權限上,文件和目錄是不一樣的,對于一個目錄,x權限是非常重要的 ,而對于一個文件,x權限在默認是不應該有的,因為文件大多是用來存儲數據的,所以在linux中,文件的默認權限是666,目錄的默認權限是777
要注意的是umask的分數指的是“默認值需要剪掉的權限”,
所以新建文件時權限:rw--r--r--
新建目錄:r-xr-xr-x