權限是操做系統用來限制資源訪問的機制,權限通常分爲讀、寫、執行。linux
系統中每一個文件都擁有特定的權限、所屬用戶及所屬組,經過這樣的機制來限制哪些用戶、哪些組能夠對特定的文件進行什麼樣的操做。安全
每一個進程都是以某個用戶的身份運行,因此進程的權限與該用戶的權限同樣,用戶的權限越大,該進程所擁有的權限也就越大。bash
Linux 中,每一個文件擁有如下三種權限:測試
權限 | 對文件的影響 | 對目錄的影響 |
r(讀取) | 可讀取文件內容 | 可列出目錄內容 |
w(寫入) | 能夠修改文件內容 | 可在目錄建立、刪除文件 |
x(執行) | 能夠做爲命令執行 | 可訪問目錄內容 |
因此,目錄必須擁有 "x" 權限纔可查看其內容。不少時候,執行權限 "x" 對於目錄而言也叫瀏覽權限。僅有 "r" 權限是沒法查看目錄內容的(由於連訪問都作不到)。spa
Linux 權限基於 UGO 模型進行控制:操作系統
命令 ls -l 能夠查看當前目錄下全部文件的詳細信息:.net
上圖中,每一行的格式以下:3d
drwxr-xr-x. | 2 | mingc | mingc | 4096 | Sep 23 14:54 | Desktop |
UGO模型的權限code 第1位是文件類型描述符,"d"表示目錄,"-"表示文件blog 第2-4位"rwx"是U模型權限,可讀可寫可執行 第5-7位"r-x"是G模型權限,可讀可執行,不可寫 第8-10位"r-x"是O模型權限 |
連接數量 | 所屬用戶U | 所屬組G | 大小 | 日期時間 | 文件或目錄名 |
命令 chown 用以改變文件的所屬用戶:
chown username filename
經常使用參數:
-R 歸地修改目錄下全部文件的所屬用戶
命令 chgrp 用以改變文件的所屬組:
chgrp groupname filename
經常使用參數:
-R 遞歸地修改目錄下全部文件的所屬組
命令 chmod 用以修改文件的權限:
chmod mode filename
mode 參數格式以下:
u、g、o 分別表明用戶、組、其餘 a 表明ugo +、- 表明加入或刪除對應權限 r、w、x 表明三種權限 -R 遞歸地修改
示例:
chmod u +rw test.md 給文件的所屬用戶添加rw權限 chmod g -x test.md 給文件的所屬組移除x權限 chmod go +r test.md 給文件的所屬組和其餘用戶添加r權限 chmod a -x test.md 給文件的所屬UGO三個模型均移除x權限
命令 chmod 也支持以三位八進制數值的方式修改權限,rwx 權限值分別由數字表示以下:
r = 4 (2 ^ 2) w = 2 (2 ^ 1) x = 1 (2 ^ 0)
使用數字表示權限時,每組權限分別爲對應數字之和:
rw = 4 + 2 = 6 rwx = 4 + 2 + 1 = 7 r-x = 4 + 1 = 5
因此,使用數字表示 UGO 權限時,能夠用以下方式表示:
chmod 0660 test.md 設置 UGO 權限爲 rw-rw---- chmod 0775 test.md 設置 UGO 權限爲 rwxrwxr-x
如今有個某公司 Company,部門和員工以下:
部門 | 員工 |
培訓部(Training) | 李雷(LiLei) 王雪(WangXue) |
市場部(Market) | 韓梅梅(HanMeimei) 林立(LinLi) |
管理部(Manage) | 路人甲(User1) 路人乙(User2) |
不行了,名字想不出來了~~
如今,要爲每一個部門和員工創建相應的工做文件夾,要求以下:
好的,下面開始:
用組來表示部門,用用戶來表示員工,我以 root 用戶登陸添加組和用戶,併爲用戶指定附屬組(部門):
爲了讓整個公司的文件夾 Company 有足夠的訪問權限,在根目錄 "/" 下建立公司的文件夾目錄 /Company,並建立三個部門子目錄,去掉每一個部門目錄的 O 模型權限並指定所屬部門:
OK,這樣就知足了前 3 個要求:有統一文件夾和多個不一樣的部門目錄,而且不一樣部門之間全沒有 O 模型權限,不能訪問對方。
下面繼續建立員工目錄,併爲每一個目錄指定它的所屬員工和所屬部門:
好的,第 4 和第 5 個要求也知足了:每一個員工有本身的文件夾,而且不一樣員工之間只能查看不能修改。
最後測試一下,登陸 LiLei 帳號:
不一樣部門之間不能查看,同一部門之間能夠查看不能修改,完成。
相關連接: