一、命令介紹
chmod 命令,是Linux管理員最常用的命令之一,用於修改文件或目錄的訪問權限。
Linux系統中,每一個文件都有文件所有者和所屬群組,並且規定文件的所有者,所屬群組,以及其他人隊問價有讀取(r), 可寫(w),執行(x)等權限,
亦可分別用數字4、2、1 表示。
文件的可讀、可寫、可執行權限可以簡寫為rwx,也可以使用數字7表示(4+2+1)。
權限設定字符串格式如下:
[ugoa...][[+-=][rwxX]...][,...]
其中
- u 表示該文件的擁有者,g 表示與該文件的擁有者屬於同一個群體(group)者,o 表示其他以外的人,a 表示這三者皆是。
- + 表示增加權限、- 表示取消權限、= 表示唯一設定權限。
- r 表示可讀取,w 表示可寫入,x 表示可執行,X 表示只有當該文件是個子目錄或者該文件已經被設定過為可執行。
參數
- -c : 若該文件權限確實已經更改,才顯示其更改動作
- -f : 若該文件權限無法被更改也不要顯示錯誤訊息
- -v : 顯示權限變更的詳細資料
- -R : 對目前目錄下的所有文件與子目錄進行相同的權限變更(即以遞回的方式逐個變更)
----------------------------------------------------------------------------------------------------
二、實例
使用chmod命令修改文件 1 訪問權限,使所有者,群組,以及其他人都有rwx權限。
chmod ugo+rwx 1
chmod 777 1
如果我們想要所有人都具有文件2的rwx權限,可以使用
chmod a+rwx 2
我們想要在文件2現有權限的基礎上修改文件所有者及所屬群組具有rwx權限,而其他人只具有r權限。
chmod ug=rwx o-wx 2
我們新建一個文件3,使其具有同文件2相同的權限
chmod 774 3
我們新建一個目錄new,並在目錄中新建文件1 和 文件2 .如果要修改new目錄和目錄中的所有文件權限為777,這時我們九需要使用 R參數。
chmod -Rf 777 new
--------------------------------------------------------------------------------------------------------------------------
三、總結
chmod命令使Linux管理員最常用的命令之一,可見他對於Linux系統管理相當重要。
目錄的讀寫權限和文件的讀寫權限區別很明顯,前者是可以列出目錄下的文件和創建新文件,后者就是讀取文件的內容和向文件寫入。對於執行權限的區別我的理解是
如果對目錄沒有執行權限,但是對目錄下的文件有執行權限,那么相當於對該文件也沒有權限
如果對目錄有執行權限,但是目錄下的文件沒有執行權限,相當於對該文件也沒有權限
所以要執行一個目錄下的文件,必須目錄和文件都具有執行權限。
文章不當之處,望指正。