Linux 入門記錄:12、Linux 權限機制

1、權限

權限是操做系統用來限制資源訪問的機制,權限通常分爲讀、寫、執行。linux

系統中每一個文件都擁有特定的權限、所屬用戶及所屬組,經過這樣的機制來限制哪些用戶、哪些組能夠對特定的文件進行什麼樣的操做。安全

每一個進程都是以某個用戶的身份運行,因此進程的權限與該用戶的權限同樣,用戶的權限越大,該進程所擁有的權限也就越大。bash

 

2、文件權限

Linux 中,每一個文件擁有如下三種權限:測試

權限 對文件的影響 對目錄的影響
r(讀取) 可讀取文件內容 可列出目錄內容
w(寫入) 能夠修改文件內容 可在目錄建立、刪除文件
x(執行) 能夠做爲命令執行 可訪問目錄內容

因此,目錄必須擁有 "x" 權限纔可查看其內容。不少時候,執行權限 "x" 對於目錄而言也叫瀏覽權限。僅有 "r" 權限是沒法查看目錄內容的(由於連訪問都作不到)。spa

 

3、UGO模型

Linux 權限基於 UGO 模型進行控制:操作系統

  • U 表明 User,是文件或文件夾所屬用戶的權限;G 表明 Group,是文件或文件夾所屬組的權限;O 表明 Other,是其餘用戶對文件或文件夾的權限
  • 每個文件的權限基於 UGO 模型進行設置
  • 權限三個一組(rwx),對應 UGO 分別設置(總共有 3 個組 9 個權限)
  • 每個文件擁有一個所屬用戶和所屬組,對應 U、G模型;不屬於該文件所屬用戶和所屬組的使用 O(Other)模型對應的權限

命令 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   大小  日期時間  文件或目錄名 

 

4、修改文件所屬用戶和組

命令 chown 用以改變文件的所屬用戶:

chown username filename

經常使用參數:

-R   歸地修改目錄下全部文件的所屬用戶

命令 chgrp 用以改變文件的所屬組:

chgrp groupname filename

經常使用參數:

-R   遞歸地修改目錄下全部文件的所屬組

  

5、修改文件權限

命令 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

 

6、實例

案例描述

如今有個某公司 Company,部門和員工以下:

部門 員工
培訓部(Training)

李雷(LiLei)

王雪(WangXue)

市場部(Market)

韓梅梅(HanMeimei)

林立(LinLi)

管理部(Manage)

路人甲(User1)

路人乙(User2)

不行了,名字想不出來了~~

如今,要爲每一個部門和員工創建相應的工做文件夾,要求以下:

  1. 全部目錄、文件均保存在一個統一的文件夾下
  2. 每一個部門擁有一個獨立的文件夾
  3. 不一樣部門之間不能訪問對方文件夾
  4. 每一個員工在所在部門文件夾下擁有一個所屬的文件夾
  5. 相同部門不一樣員工之間能夠查看對方的文件夾,但不可修改,員工只能修改本身的文件夾

 

解決方案

好的,下面開始:

用組來表示部門,用用戶來表示員工,我以 root 用戶登陸添加組和用戶,併爲用戶指定附屬組(部門):

爲了讓整個公司的文件夾 Company 有足夠的訪問權限,在根目錄 "/" 下建立公司的文件夾目錄 /Company,並建立三個部門子目錄,去掉每一個部門目錄的 O 模型權限並指定所屬部門:

OK,這樣就知足了前 3 個要求:有統一文件夾和多個不一樣的部門目錄,而且不一樣部門之間全沒有 O 模型權限,不能訪問對方。

下面繼續建立員工目錄,併爲每一個目錄指定它的所屬員工和所屬部門:

好的,第 4 和第 5 個要求也知足了:每一個員工有本身的文件夾,而且不一樣員工之間只能查看不能修改。

最後測試一下,登陸 LiLei 帳號:

不一樣部門之間不能查看,同一部門之間能夠查看不能修改,完成。

 

相關連接:

Linux安全體系的文件權限

linux文件權權限

相關文章
相關標籤/搜索