? ? ? ? 在上一篇的內容中我們學習到了Linux系統命令相關的知識及其相關的擴展內容,本期我們將學習Linux基礎的另一個重要部分:Linux系統權限管理
????????作者的個人gitee:樓田莉子 (riko-lou-tian) - Gitee.com
目錄
權限概念及必要性
? ? ? ? 什么是權限
? ? ? ? 為什么要有權限
? ? ? ? 權限=人+文件屬性
? ? ? ? su指令
Linux的權限管理? ? ? ??
? ? ? ? 文件訪問者
? ? ? ? 那么Linux系統下為什么會有系統組呢?
? ? ? ? 所屬組的核心作用
? ? ? ? 用戶與組的關系
? ? ? ? 組信息存儲位置
?關鍵命令總結:
????????文件屬性及其權限
文件訪問權限相關的設置
? ? ? ? 1、chmod
????????2、chown
? ? ? ? 3、chgrp
???????? file指令
????????使用sudo分配權限
????????目錄的權限
關于權限的總結
粘滯位(選擇性學習)??編輯
????????三個問題
權限概念及必要性
? ? ? ? 什么是權限
? ? ? ? 權限是訪問一種資源的時候決定我們能還是不能的問題。
? ? ? ? 為什么要有權限
? ? ? ? 那么為什么Linux要有權限呢?因為Linux系統是一個多用戶系統,同時會有多個人來登錄訪問。如果沒有權限之分,那么隨意一個用戶就可以對別人的數據進行增刪查改,這是極其危險的行為。
? ? ? ? 因此,權限的本質就是為了更好的用戶管理
? ? ? ? 權限=人+文件屬性
? ? ? ? 權限是針對特定群體的——與人有關。因為Linux系統下一切皆文件,因此其目標主題必然天然帶有一定的屬性才能訪問
? ? ? ? 文件的屬性有三類:r(可讀)、w(可寫)、x(可執行)
? ? ? ? Linux下有兩種類型的用戶:普通用戶、root用戶。
? ? ? ? root用戶:可以在Linux系統上做任何事情不受限制。
? ? ? ? 普通用戶:在Linux系統下做有限的事情。
? ? ? ? 在Linux系統中。root用戶的提示符是“#”,普通用戶的提示符是“$”
? ? ? ? su指令
? ? ? ? 語法:
su[用戶名]
? ? ? ? 功能:切換用戶。
? ? ? ? 比如su user就會從root用戶轉換為user用戶。要從普通??user切換到root??則使? su root(root可以省略),此時系統會提?輸?root??的?令。
? ? ? ? 但是當我們作為普通賬號要進行安裝軟件的時候,酒席要將軟件拷貝到指定目錄下,但是OS會阻止我們拷貝,那是否只能讓管理員來進行安裝呢?不是的。有一個命令sudo可以解決。
? ? ? ? sudo命令是普通賬戶進行短暫提權的命令。
? ? ? ? 普通用戶默認是無法使用sudo的(自己安裝的虛擬機除外)。
? ? ? ? 什么是白名單呢?與黑名單相對,無條件同意。普通賬戶默認不是白名單?
? ? ? ? root賬戶可以決定哪個普通用戶是白名單內成員
Linux的權限管理
? ? ? ??
? ? ? ? 文件訪問者
? ? ? ? Linux系統下的角色:
?????????件和?件?錄的所有者:u---User(中國平? 法律問題)
?????????件和?件?錄的所有者所在的組的??:g---Group(不多說)
????????其它??:o---Others (外國?)
? ? ? ? 具體如下:
? ? ? ? 那么Linux系統下為什么會有系統組呢?
????????因為在 Linux 系統中,用戶的所屬組(User Groups)?是權限管理的核心機制之一,它通過組(Group)?將用戶分類,實現批量分配文件/目錄的訪問權限
? ? ? ? 所屬組的核心作用
? ? ? ? 1、權限共享:同組用戶自動繼承該組對文件/目錄的權限(讀/寫/執行),無需單獨配置每個用戶。
? ? ? ? 2、資源隔離:不同組的用戶無法訪問彼此的資源(除非顯式授權)
? ? ? ? 3、簡化管理:修改組的權限 = 批量修改組內所有用戶的權限
? ? ? ? 用戶與組的關系
? ? ? ? 1、主組
-
每個用戶必須屬于且僅有一個主組(創建用戶時自動生成同名組)。
-
用戶新建文件時,文件的默認所屬組 = 用戶的主組。
-
查看命令:
id
?或?groups
$ id alice uid=1001(alice) gid=1001(alice) groups=1001(alice),1005(developers) # gid=1001(alice) → 主組是 "alice"
? ? ? ? 2、附加組
-
用戶可加入零個或多個附加組,獲得額外的權限。
-
示例:用戶?
alice
?加入?developers
?組后,可訪問該組授權的項目目錄。 -
管理命令:
usermod -aG developers alice # 將 alice 添加到 developers 組(不改變主組) groups alice # 查看 alice 的所有所屬組
? ? ? ? 組信息存儲位置
文件 | 作用 | 示例內容 |
---|---|---|
/etc/passwd | 記錄用戶的?UID 和主組 GID | alice:x:1001:1001::/home/alice:/bin/bash |
/etc/group | 定義組及其成員列表 | developers:x:1005:alice,bob (組名:密碼占位符:GID:成員列表) |
解析?/etc/group
:
-
developers
:組名 -
x
:加密密碼占位符(實際密碼在?/etc/gshadow
) -
1005
:組 ID (GID) -
alice,bob
:組成員列表(用逗號分隔)
?關鍵命令總結:
命令 | 作用 |
---|---|
groups [用戶名] | 查看用戶的所有所屬組 |
id [用戶名] | 顯示用戶 UID、GID 及組列表 |
usermod -aG 組名 用戶名 | 將用戶添加到附加組 |
gpasswd -d 用戶 組名 | 從組中移除用戶 |
newgrp 組名 | 臨時切換用戶的主組(需有權限) |
????????文件屬性及其權限
?????????件類型:
????????? d:?件夾
????????? -:普通?件
????????? l:軟鏈接(類似Windows的快捷?式)
????????? b:塊設備?件(例如硬盤、光驅等)
????????? p:管道?件
????????? c:字符設備?件(例如屏幕等串?設備)
????????? s:套接??件
基本權限:
????????? 讀(r/4):Read對?件??,具有讀取?件內容的權限;對?錄來說,具有瀏覽該?錄信息的權限
????????? 寫(w/2):Write對?件??,具有修改?件內容的權限;對?錄來說具有刪除移動?錄內
?件的權限
????????? 執?(x/1):execute對?件??,具有執??件的權限;對?錄來說,具有進??錄的權
限
????????? “—”表?不具有該項權限
? ? ? ? Linux中的舉例說明
? ? ? ? 那么如何表達一個文件的權限?
文件訪問權限相關的設置
? ? ? ? 1、chmod
? ? ? ? 語法:
chmod [參數] 權限 ?件名
? ? ? ? 功能:設置?件的訪問權限
????????常?選項:
?????????R -> 遞歸修改?錄?件的權限
????????說明:只有?件的擁有者和root才可以改變?件的權限
????????chmod命令權限值的格式:
? ? ? ? ? ??表?符+/-=權限字符
?????????+:向權限范圍增加權限代號所表?的權限
?????????-:向權限范圍取消權限代號所表?的權限
?????????=:向權限范圍賦予權限代號所表?的權限
???????????符號:
?????????u:擁有者
?????????g:擁有者同組?
?????????o:其它??
?????????a:所有??
? ? ? ? 舉例說明:
????????2、chown
????????語法:
chown [參數] ??名 ?件名
????????功能:修改?件的擁有者
? ? ? ? 3、chgrp
? ? ? ? 語法:
chgrp [參數] ??組名 ?件名
? ? ? ? 功能:修改?件或?錄的所屬組
????????常?選項:-R 遞歸修改?件或?錄的所屬組
? ? ? ? 4、unmask
????????語法:
格式:umask 權限值
????????功能:
????????查看或修改?件掩碼
????????新建?件夾默認權限=0666
????????新建?錄默認權限=0777
????????但實際上你所創建的?件和?錄,看到的權限往往不是上?這個值。原因就是創建?件或?錄的
????????時候還要受到umask的影響。假設默認權限是mask,則實際創建的出來的?件權限是: mask &
~umask
????????說明:將現有的存取權限減去權限掩碼后,即可產?建??件時預設權限。超級??默認掩碼值為0022,普通??默認為0002
? ? ? ?
???????? file指令
語法:
file [選項] ?件或?錄...
功能:辨識?件類型
常?選項:
? -c:詳細顯?指令執?過程,便于排錯或分析程序執?的情形。
? -z:嘗試去解讀壓縮?件的內容。
????????使用sudo分配權限
????????(1)修改/etc/sudoers ?件分配?件
# chmod 740 /etc/sudoers
# vi /etc/sudoer
????????(2)使? sudo 調?授權的命令
?
$ sudo –u ??名 命令
????????目錄的權限
? ? ? ? 目錄有三種權限:
????????可執?權限: 如果?錄沒有可執?權限, 則?法cd到?錄中.
????????可讀權限: 如果?錄沒有可讀權限, 則?法?ls等命令查看?錄中的?件內容.
????????可寫權限: 如果?錄沒有可寫權限, 則?法在?錄中創建?件, 也?法在?錄中刪除?件.
????????于是, 問題來了~~ 換句話來講, 就是只要??具有?錄的寫權限, ??就可以刪除?錄中的?件, ?不論這個??是否有這個?件的寫權限.
????????這好像不太科學啊, 我張三創建的?個?件, 憑什么被你李四可以刪掉?
我們用下面這段進行驗證
為了解決這個不科學的問題, Linux引?了粘滯位的概念
關于權限的總結
? ?錄的可執?權限是表?你可否在?錄下執?命令。
? 如果?錄沒有 -x 權限,則?法對?錄執?任何命令,甚??法 cd 進??, 即使?錄仍然有 -r 讀
權限(這個地?很容易犯錯,認為有讀權限就可以進??錄讀取?錄下的?件)
? ?如果?錄具有 -x 權限,但沒有 -r 權限,則??可以執?命令,可以 cd 進??錄。但由于沒有
?錄的讀權限
? 所以在?錄下,即使可以執? ls 命令,但仍然沒有權限讀出?錄下的?檔。
粘滯位(選擇性學習)
?
????????當?個?錄被設置為"粘滯位"(?chmod +t),則該?錄下的?件只能由
1. 超級管理員刪除
2. 該?錄的所有者刪除
3. 該?件的所有者刪除
留下三個問題:
????????三個問題
1、進入一個目錄需要什么權限?
2、為什么我們新建一個文件默認權限是我們看到的那個樣子?
3、沒有rmx我們能刪除這個文件嗎?
? ? ? ? 這些部分我后面會補充。
? ? ? ? 本期內容就到這里,喜歡請點個贊謝謝
封面圖自取: