• <acronym id="rzocz"><strong id="rzocz"><address id="rzocz"></address></strong></acronym>
    <track id="rzocz"><strike id="rzocz"></strike></track>

    <td id="rzocz"><ruby id="rzocz"></ruby></td>
    <acronym id="rzocz"><strong id="rzocz"><address id="rzocz"></address></strong></acronym>
    1. 當前位置:首頁 > 新聞中心 > 常見問題
      Linux 文件權限 詳解責任編輯 :李飛    文章來源 :星翼創想(www.rianbow-spring.com.cn)    發布時間 :2016-07-13    閱讀次數:3693     專題 :網站開發

      在 Linux 中最基本的任務之一就是設置文件權限。理解它們是如何實現的是你進入 Linux 世界的第一步。如您所料,這一基本操作在類 UNIX 操作系統中大同小異。實際上,Linux 文件權限系統就直接取自于 UNIX 文件權限(甚至使用許多相同的工具)。

      但不要以為理解文件權限需要長時間的學習。事實上會很簡單,讓我們一起來看看你需要了解哪些內容以及如何使用它們。

      基礎概念

      你要明白的第一件事是文件權限可以用來干什么。當你設置一個分組的權限時發生了什么?讓我們將其展開來說,這個概念就真的簡單多了。那到底什么是權限?什么是分組呢?

      你可以設置的3種權限:

      • 讀 — 允許該分組讀文件(用r表示)
      • 寫 — 允許該分組寫文件(用w表示)
      • 執行 — 允許該分組執行(運行)文件(用x表示)

      為了更好地解釋這如何應用于一個分組,例如,你允許一個分組可以讀寫一個文件,但不能執行?;蛘?,你可以允許一個分組讀和執行一個文件,但不能寫。甚至你可以允許一個分組有讀、寫、執行全部的權限,也可以刪除全部權限來去除該組的權限。

      現在,什么是分組呢,有以下4個:

      • user — 文件實際的擁有者
      • group — 用戶所在的用戶組
      • others — 用戶組外的其他用戶
      • all — 所有用戶

      大多數情況,你只會對前3組進行操作,all 這一組只是作為快捷方式(稍后我會解釋)。

      到目前為止很簡單,對吧?接下來我們將深入一層。

      如果你打開一個終端并運行命令 ls -l,你將會看到逐行列出當前工作目錄下所有的文件和文件夾的列表(如圖)

      初識 Linux 文件權限

      你會留意到最左邊那列是像是 -rw-rw-r– 這樣的。

      實際上這列表應該這樣看:

      rw- rw- r–

      正如你所見,列表將其分為如下3部分:

      • rw-
      • rw-
      • r–

      權限和組的順序都很重要,順序總是:

      • 所屬者 所屬組 其他人 — 分組
      • 讀 寫 執行 — 權限

      在我們上面示例的權限列表中,所屬者擁有讀/寫權限,所屬組擁有讀/寫權限,其他人用戶僅擁有讀權限。這些分組中賦予執行權限的話,就用一個 x 表示。

      初識 Linux 文件權限

      等效數值

      接下來我們讓它更復雜一些,每個權限都可以用一個數字表示。這些數字是:

      • 讀 — 4
      • 寫 — 2
      • 執行— 1

      數值代替不是一個一個的替換,你不能像這樣:

      -42-42-4–

      你該把每個分組的數值相加,給用戶讀和寫權限,你該用 4 + 2 得到 6。給用戶組相同的權限,也是使用相同的數值。假如你只想給其他用戶讀的權限,那就設置它為4?,F在用數值表示為:

      664

      如果你想給一個文件664權限,你可以使用 chmod 命令,如:

      chmod 664 FILENAME

      FILENAME 處為文件名。

      更改權限

      既然你已經理解了文件權限,那是時候學習如何更改這些權限了。就是使用 chmod 命令來實現。第一步你要知道你能否更改文件權限,你必須是文件的所有者或者有權限編輯文件(或者通過 su 或 sudo 得到權限)。正因為這樣,你不能隨意切換目錄和更改文件權限。

      繼續用我們的例子 (-rw-rw-r–)。假設這個文件(命名為 script.sh)實際是個shell腳本,需要被執行,但是你只想讓自己有權限執行這個腳本。這個時候,你可能會想:“我需要是文件的權限如 -rwx-rw-r–”。為了設置 x 權限位,你可以這樣使用 chmod 命令:

      chmod u+x script.sh

      這時候,列表中顯示的應該是 -rwx-rw-r– 。

      如果你想同時讓用戶及其所屬組同時擁有執行權限,命令應該這樣:

      chmod ug+x script.sh

      明白這是怎么工作的了嗎?下面我們讓它更有趣些。不管什么原因,你不小心給了所有分組對文件的執行權限(列表中是這樣的 -rwx-rwx-r-x)。

      如果你想去除其他用戶的執行權限,只需運行命令:

      chmod o-x script.sh

      如果你想完全刪除文件的可執行權限,你可以用兩種方法:

      chmod ugo-x script.sh

      或者

      chmod a-x script.sh

      以上就是所有內容,能使操作更有效率。我希望能避免哪些可能會導致一些問題的操作(例如你不小心對 script.sh 使用 a-rwx 這樣的 chmod 命令)。

      目錄權限

      你也可以對一個目錄執行 chmod 命令。當你作為用戶創建一個新的目錄,通常新建目錄具有這樣的權限:

      drwxrwxr-x

      注:開頭的 d 表示這是一個目錄。

      正如你所見,用戶及其所在組都對文件夾具有操作權限,但這并不意味著在這文件夾中出創建的文件也具有與其相同的權限(創建的文件使用默認系統的權限 -rw-rw-r–)。但如果你想在新文件夾中創建文件,并且移除用戶組的寫權限,你不用切換到該目錄下并對所有文件使用 chmod 命令。你可以用加上參數 R(意味著遞歸)的 chmod 命令,同時更改該文件夾及其目錄下所有的文件的權限。

      現在,假設有一文件夾 TEST,里面有一些腳本,所有這些(包括 TEST 文件夾)擁有權限 -rwxrwxr-x。如果你想移除用戶組的寫權限,你可以運行命令:

      chmod -R g-w TEST

      運行命令 ls -l,你講看到列出的 TEST 文件夾的權限信息是 drwxr-xr-x。用戶組被去除了寫權限(其目錄下的所有文件也如此)。

      總結

      現在,你應該對基本的 Linux 文件權限有了深入的理解。對于更高級的東西學起來會很輕松,像 setgid、setuid 和 ACL 這些。沒有良好的基礎,你很快就會混淆不清概念的。

      Linux 文件權限從早期到現在沒有太大變化,而且很可能以后也不會變化。


      文章轉載請保留網址:http://www.rianbow-spring.com.cn/news/faq/1709.html

      掃碼添加微信
      159 8667 8737
      24小時電話

      亚洲欧美国产综合Av学生_国产在线观看AV直播_亚洲黄色三级片图片操逼_欧美色图在线观看
    2. <acronym id="rzocz"><strong id="rzocz"><address id="rzocz"></address></strong></acronym>
      <track id="rzocz"><strike id="rzocz"></strike></track>

      <td id="rzocz"><ruby id="rzocz"></ruby></td>
      <acronym id="rzocz"><strong id="rzocz"><address id="rzocz"></address></strong></acronym>