首先來談一下linux下文件的權限。
linux中秉承everything is a file的理念,每一個文件有三個權限,可讀(r),可寫(w),可執行(x)。權限表示用r、w、x這三個字母進行表示,"-"就表示不具有特定的權限。如圖:
而目錄的權限一開始也是讓人有些難於理解,so 去實踐一下吧:
- jack@jiaobuchong:~/test$ mkdir sky //創建sky這個文件夾作爲測試
- jack@jiaobuchong:~/test$ ls -l
- total 4
- drwxrwxr-x 2 jack jack 4096 Aug 5 15:22 sky
- jack@jiaobuchong:~/test$ chmod 700 sky //把sky這個目錄組和其他的權限給歸0
- jack@jiaobuchong:~/test$ ls -l
- total 4
- drwx------ 2 jack jack 4096 Aug 5 15:22 sky //目前這個jack這個用戶在sky這個文件夾裏可以任何想幹的
目錄的可執行權限:
- jack@jiaobuchong:~/test$ ls -l
- total 4
- drwx------ 2 jack jack 4096 Aug 5 15:39 sky
- jack@jiaobuchong:~/test$ chmod u-x sky //去掉可執行權限
- jack@jiaobuchong:~/test$ ls -l
- total
- drw------- 2 jack jack 4096 Aug 5 15:39 sky
- jack@jiaobuchong:~/test$ cd sky
- bash: cd: sky: Permission denied //想進去這個目錄不可以了
- jack@jiaobuchong:~/test$
現在我把sky目錄的可執行權限去掉:
所以可得出結論,目錄的可執行權限,就是用戶能不能進入這個目錄。沒有了進入的(可執行)權限,用戶對這個目錄就啥也不能幹了。
目錄的可讀權限:
- jack@jiaobuchong:~/test$ chmod u+x sky/
- jack@jiaobuchong:~/test$ ls -l
- total 4
- drwx------ 2 jack jack 4096 Aug 5 15:39 sky
- jack@jiaobuchong:~/test$ chmod u-r sky/ //對sky這個目錄去掉可讀的權限
- jack@jiaobuchong:~/test$ ls -l
- total 4
- d-wx------ 2 jack jack 4096 Aug 5 15:39 sky
- jack@jiaobuchong:~/test$ cd sky
- jack@jiaobuchong:~/test/sky$ ls //沒有可讀的權限後,就不能瀏覽這個目錄裏的內容了
- ls: cannot open directory .: Permission denied
- jack@jiaobuchong:~/test/sky$
$vim sky
沒有可讀權限時,結果是看不到任何東西的。如果具有可讀的權限,編輯文件目錄sky,我們可以看見有內容:文件目錄裏面各個文件的名字。
目錄的可寫權限:
- jack@jiaobuchong:~/test$ chmod u-w sky/
- jack@jiaobuchong:~/test$ cd sky/
- jack@jiaobuchong:~/test/sky$ ls
- hello
- jack@jiaobuchong:~/test/sky$ rm hello
- rm: cannot remove `hello': Permission denied
- jack@jiaobuchong:~/test/sky$ touch test
- touch: cannot touch `test': Permission denied //當我們想創建文件和刪除文件時都不行了
- jack@jiaobuchong:~/test/sky$
最後通俗地總結一下:
目錄的可讀權限就是可以在目錄裏可以使用ls命令;
目錄的可寫權限就是可以在目錄裏可以使用touch、mkdir、rmdir、rm等命令;
目錄的可執行權限就是可以使用cd命令進入這個目錄。