歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> linux文件權限解說

linux文件權限解說

日期:2017/3/1 16:14:14   编辑:關於Linux
linux文件權限解說 我們進入一個目錄, 執行ls -l會顯示該目錄下所有檔案(這裡用"檔案"這個詞, 代表文件和文件夾)的詳細信息. 如圖: 一共有7列信息, 分別為: [權限], [連結數], [擁有者], [群組], [大小], [最後修改時間], [名字]. 此篇僅對[權限], [擁有者], [群組]進行一下詳細介紹. 由於Linux是個多用戶多任務的系統,因此可能常常會有多人同時使用這部主機來進行工作的情況發生, 為了考慮每個人的隱私權以及每個人喜好的工作環境,因此角色的概念非常重要. 這裡有3個概念. 1)檔案擁有者(user): 創建檔案的人. 2)群組(group): 檔案所屬的群組. 3)其他(others): user和group之外的其它用戶. 看一下[權限]這一列, 一共有10位, 可以分為4段. 第1位代表文件的類型, ' - ' 代表這是個常規文件, ' d ' 代表這是個文件夾. ( 還有其它一些不常見的如' l ' , ' c ' , ' b ' , ' p ' , ' s ' 等, 在此暫不做解釋. ) 2~4這三位代表user的read / write / execute權限. 5~7這三位代表group的read / write / execute權限. 8~10這三位代表others的read / write / execute權限. 如果可讀/ 寫 / 執行, 則用字母r / w / x 表示, 如果不可讀 / 寫 / 執行, 則用 - 來表示. read / write / execute 解釋如下(摘錄於百度文庫): 對於文件:(以下對文件權限的測試是在上層目錄權限為777的情況下完成的) 可讀:表示可以讀取復制文件的內容 可寫:表示可以修改文件的內容 可執行:表示可以用其他解析程序對文件進行執行操作 僅可讀:只有可讀權限則只能讀取文件內容和復制該文件,不可改寫文件內容,此時該文件的刪除移動權限由上層目錄權限決定,如果其上層目錄擁有刪除移動的權限,可以對其進行刪除移動操作。 僅可寫:如果只有可寫權限而無可讀執行權限,既不能讀取和改寫該文件內容,也不能執行文件,且不可復制文件,此時該文件的刪除移動權限由上層目錄權限決定。 僅可執行:只有可執行權限時不可讀取和改寫該文件內容,也不可復制該文件,好像也並不能作為腳本執行,此時該文件的刪除移動權限由上層目錄權限決定。 所以,通常要對文件具有寫權限,需要同時具有可讀和可寫,要對文件具有執行權限,需要同時具有可讀和可執行。 對於目錄:(以下對目錄權限的測試是在所涉及文件權限為777的情況下完成的) 可讀:表示可以列出目錄本身和目錄下面的文件和子目錄的屬性,僅查看屬性(ls) 可寫:表示可以往目錄中添加刪除文件和目錄 可執行:可以進入該目錄, 可以讀取該目錄下面的文件內容或者改寫文件內容(在文件權限允許的情況下) 僅可讀:目錄的讀權限僅允許我們讀目錄,獲得在該目錄中所有文件名的列表,不可添加刪除其中的文件或目錄,也不可讀取和改寫其中文件的內容。 僅可寫:如果只有寫權限,仍然無法往目錄中添加刪除或修改文件和子目錄,包括復制和移動。要修改目錄中的文件內容,不僅僅需要目錄的寫權限,還需要目錄的執行權限。 僅可執行:對目錄沒有讀寫權限,只有執行權限,一樣可以讀取和改寫目錄下面文件的內容(只要你確定該路徑下的該文件存在);那是否不需要目錄的可寫權限呢?當然不是,如果沒有可寫權限,無法往目錄中添加刪除或修改文件和子目錄,包括復制和移動。 可見, 這3種權限往往是搭配使用的. 比如對於目錄, 只有r權限可能沒什麼作用, 往往r和x要同時提供(沒有x就不能進入該目錄, r就幾乎沒什麼用了); 對於文件, 只有w卻沒有r往往也是沒用的, 還是不能寫, 沒法讀取文件的原內容, 又怎麼對內容進行增刪修改呢, 對吧. 上面的user, group, others給出的並不是具體的定義, 結合r / w / x 權限, 現構建個實際的模型, 看起來應該更容易理解. 如果纰漏, 還望指正. 我們假設大學同寢的4個人A,B,C,D在外面合租了一個四室一廳的房子, 那麼這個房子可以認為是個總的上層目錄, 起名叫home吧. 四個人的房間分別為目錄A, B, C, D. 客廳衛生間廚房等共用的空間為目錄E. (1) 四個人對自己的房間有擁有權, 是這個房間的主人, 往往也有全部的權限, 所以對於房間(目錄)A, 它的屬性可能是這樣 --> drwx------ user(A) group(A, 每個用戶都至少依附於一個group, 它的主group) (2) 四個人都是大學602寢室的兄弟, 那麼我們新建個群組名叫dorm602, 把A,B,C,D都加到這個群組裡, 那麼這個公共區域E的權限可能這樣 --> drwxrwx--- user(root) group(dorm602). 這樣一來, 屬於dorm602的A,B,C,D這四個人, 對於E都有讀 / 寫 / 執行的權限了. (3) A和B,C,D這幾個人的關系都非常好, 我的臥室你們也都可以隨便進來, 我的東西你們隨便用, 那麼好, 目錄A權限可能設置成這樣 --> drwxrwx--- user(A) group(dorm602). (4) A這個人實在是個好說話的人, 他完全不需要隱私空間, 除了B,C,D, 其他外人(比如某一天B的同學來了)也可以進他的屋參觀, 但是卻不想別人動他的東西, 只可以看. 那麼目錄A的權限可以這樣設置 --> drwxrwxr-x user(A) group(dorm602). 我們看到, others的權限為r-x, 就是說, 你可以進我屋(x), 我房間裡的東西你隨便看(r), 但是你不能動它們(w). 同樣, 關於上面提到的對於目錄要rx同時提供, 對於文件rw要同時提供的問題, 我們也用這個例子看一下. (5) 現在A對B,C,D說, 你看咱們關系這麼好, 我屋的東西你們隨便看隨便用哦, 但是不能進我的屋子. 那麼權限被A設置成這樣 --> drwxrw---- user(A) group(dorm602). 於是貌似大方, 其實就剩調侃了, 不給x權限, 有rw有神馬用嘛... 好, 既然不讓我進, 那我就在門口瞅瞅吧, 於是B試著在home目錄執行ls -l A/, 如果A的屋裡有個目錄aaa, 有個文件bbb, 那麼你大概能得到這樣的結果: d????????? ? ? ? ? ? aaa -????????? ? ? ? ? ? bbb 很合理是不是? 即使你有r的權限, 進不去屋, 在外面"遠觀"你大概也就能看清裡面有什麼東西了, 東西的具體情況, 真的了解不到了. (6) 如果是這樣呢 --> drwx--x--- user(A) group(dorm602). 那就相當於說, 我屋你們可以進, 但是得把你們眼睛蒙上. OK, 屋是能進了, 但是裡面有什麼你完全不知道, 你想去動一下屋子裡的東西, 都是不可能的. 於是cd A, 真的進到了A目錄, 但是你要是ls一下, 不好意思了, 系統提示你沒有權限喽. (7) 有的時候我們在一個目錄裡新建個文件, 卻提示沒有權限, 這是怎麼回事呀. 這就好比B的一個東西想放在A的房間裡, 為了達到這樣目的, 目錄A的權限可以這樣 -->drwx-wx--- user(A) group(dorm602). 現在B的一個文件ccc就可以放到A的房間裡了, 注意目錄A的group權限的r不是必須的, wx卻是缺一不可的. (8) 可以看出上面大部分都在拿目錄舉例, 因為對於文件的讀寫執行權限的概念我們應該比較好接受. 說一下上面提的rw的問題吧. 對於文件, 只有w權限往往沒有用, 還是沒法寫, r往往也需要帶著. 比如A的房間裡有個文件computer, A把這個文件的權限設置為了-->d-wx------ user(A) group(A). 如果有一天A覺得自己電腦的CPU性能太差了, 想給自己電腦換個新CPU, 當然, 他有這個操作權力(有w嘛), 可是沒有r啊, 於是A只能閉著眼睛把新的CPU組裝到電腦上, 顯然, 這次w操作, 不會成功的, 沒r權限, 他可能連電腦蓋子都打不開, 梅超風那種閉著眼睛打架還那麼厲害的, 只能存在於武俠小說裡是吧^ ^ . 當然, 聊以自慰的, 由於有x權限, A平時還是可以開機玩玩電腦的, 雖然比較慢. 例子就舉到這裡吧, 現在關於rwx和user, group, others應該有些具體的印象感了吧! 對這些讀寫權限, user, group神馬的有了了解, 文章的目的也就達到了, 最後附上設定權限的命令 一. chgrp: 改變檔案所屬群組. 命令格式為: chgrp groupname filename. 當然, 群組名需要存在. 二. chown: 改變檔案擁有者. 命令格式為: chown username filename. 同理, 用戶名也需要存在. 其實chown包含chgrp的功能, 使用起來非常靈活: chown username filename //只設定user chown username:groupname filename //user & group同時設定 chown :groupname filename //只設定group. 另外' : ' 可以用 ' . ' 來代替, 用法也完全一樣, 只是如果username和groupname裡本身就含有' . ' 這個字符的話, 可能就容易混淆了, 所以還是推薦用 ' : ' 三. chmod: 更改r / w / x 權限 更改r / w / x 有兩種方式, 一種是數字, 一種是符號. r , w, x 的權值分別為4, 2, 1, 於是權限表我們就可以用三個數字來表示, 比如rwx------ 為700, rwx---r-- 為704, -wx--xrwx為317. 這樣一來chmod的用法也就可以分別兩種了, 這個命令用法很靈活, 直接舉例作為總結了. 數字: 寫法簡單, 缺點是不直觀, 且進行局部設定時不方便. chmod 777 filename 字母: 這個用法就非常靈活了, 其中u, g, o, a分別代表user, group, others, all. chmod u=rwx,go=rx filename chmod u=wx filename chmod g+x filename chmod a+w filename chmod +w filename
Copyright © Linux教程網 All Rights Reserved