Linux權限管理
Linux的權限操作與使用者、使用者組是兄弟操作
一、權限概述
總述:Linux系統一般将檔案可存/取通路的身份分為3個類别:owner、group、others,且3種身份 各有read、write、execute等權限
1、權限介紹
什麼是權限:
在多使用者(可以不同時)計算機系統的管理中,權限指某個特定的使用者具有特定的系統資源使用權利,像是檔案夾,特定系統指令的使用或存儲量的限制。
在Linux中分别有讀、寫、執行權限:
讀權限:
檔案夾,影響使用者是否能夠列出目錄結構
檔案,影響使用者是否可以檢視檔案内容
寫權限:
檔案夾:影響使用者是否可以在檔案夾下,建立/删除/複制到/移動到
檔案:影響使用者是否可以編輯檔案
執行權限:
一般對于檔案來說:(腳本檔案)
2、身份介紹
Owner身份(檔案所有者,預設文檔建立者)
Group身份(與檔案所有者同組的使用者)
Others身份(其他人)
Root使用者(超級使用者)
3、Linux的權限介紹
要設定權限,就需要知道檔案的一些基本屬性和權限配置設定規則。在Linux中,ls指令常用檢視檔案的屬性,用于顯示檔案的檔案名和相關屬性。
# ls –l 路徑 ls –l 等價于 ll
Linux中存在使用者、使用者組和其他人概念,各自有不同權限,對于一個文檔來說,其權限具體配置設定如下:
十位字元的表示含義:
第1位:表示文檔類型,常見“d表示檔案夾”、“-表示檔案”、“l表示軟連結”、“s表示套接字”
第2-4位:表示文檔所有者的權限情況,第2位表示讀權限,取值r、-,第3位表示寫權限,取值w、-,第4位表示執行權限,取值x、-
第5-7位:表示與所有者同在一個組使用者的權限情況,第5位表示讀權限,取值r、-,第6位表示寫權限,取值w、-,第7位表示執行權限,取值x、-
第8-10位:表示其他使用者的權限情況,第8位表示讀權限,取值r、-,第9位表示寫權限,取值w、-,第10位表示執行權限,取值x、-
注意:位置不會變化
二、權限設定
文法:# chmod 選項 權限模式 文檔
常用選項:
-R:遞歸設定權限(當文檔類型為檔案夾的時候)
權限模式:需要設定的權限資訊
文檔:可以是檔案,也可以是檔案夾,可以是相對路徑,也可以是絕對路徑
注意:如果給檔案設定權限,操作者為root使用者,或者是文檔所有者
提權漏洞
1、字母形式
檔案為綠色,擁有執行權限
2、數字形式
# chmod 777 a.txt
讀:r 4
寫:w 2
執行:x 1
沒有權限:0
案例:給anaconda-ks.cfg設定權限,所有者擁有全部權限,同組使用者擁有讀執行權限,其他使用者隻讀
文法:#Chmod 754 anaconda-ks.cfg
3、注意事項
使用root建立一個檔案夾,權限預設drwxr-xr-x
在檔案夾下建立一個檔案,給777權限
切換使用者test(不是所有者,不是同組使用者,是其他人)
能打開檔案:能打開
能編輯檔案:能編輯
能删除檔案:權限不夠,無法删除,不允許建立檔案/檔案夾,移動檔案,重命名檔案
在Linux中,如果删除一個檔案,不是看檔案有沒有對應權限,而是看檔案所在目錄是否有寫權限,如果有才可以删除。
三、屬主與屬組設定
屬主:所屬的使用者(檔案的主人)
屬組:所屬的使用者組
前面為屬主,後面為數組
這兩項資訊在文檔建立的時候會使用建立者的資訊(使用者名、使用者所屬的主組名稱)
删除某個使用者時,該使用者對應的文檔的屬主和屬組資訊就需要去修改。
1、chown
作用:更改文檔的所屬使用者
文法:# chown –R username 文檔路徑
案例:将目錄的使用者名從root更改其他使用者名
# chown text /oo
2、chgrp
作用:更改文檔的所屬的使用者組
文法:# chgrp –R groupname 文檔的路徑
案例:将目錄所屬使用者組從root改為其他組
# chgrp test oo/
如何通過一個指令同時更改使用者名和使用者組
指令:chown
文法:# chown –R username:groupname 文檔路徑
四、拓展
Reboot、shutdown、init、halt、user管理,普通使用者無法處理
解決:sudo(switch user do)指令進行權限設定
預設sudo中沒有除root之外使用者的規則,要想使用則先設定sudo
Sudo配置檔案:/etc/sudoers
- 配置sudo檔案請使用“# visudo”,打開後,與vim使用一緻
- 配置普通使用者的權限
Root:表示使用者名,如果是使用者組,則可以寫成“%組名”
ALL:表示允許登入的主機(位址白名單)
(ALL):表示以誰的身份執行,all表示root
ALL:表示目前使用者可以執行的指令,多個指令可以使用“,”分割
案例:用普通使用者添加使用者,并且修改密碼(不能改root密碼)
注意:寫sudo規則時,不建議直接寫指令,而是寫指令的完整路徑,路徑可以用which檢視
文法:# which 指令名稱
添加好對應規則後,使用:# sudo 指令
在普通使用者下如何檢視自己哪些權限:
# sudo –l
Sudo不是所有任何Linux分支都有的指令,常見centos與Ubuntu都存在