賬號和許可權管理
一、使用者和組賬號的概述;
1.概念:使用者:包含一個名和密碼,人在計算機中的體現方式,包含root、普通使用者、程式使用者;
組:使用者的集合,批量管理使用者群許可權,包含基本組、附加組(一個使用者只能屬於一個基本組,但是可以屬於多個附加組);
許可權:限制使用者訪問資源(檔案、app、程序、硬體等);
UID:每個使用者賬號都有一個數字標識(身份證),root(0)、普通使用者(500-60000)、程式使用者(1-499);
GID:每個組賬號的唯一身份標識;root(0)、普通組賬號(500-60000)、程式組賬號(1-499);
2.使用者和組的檔案;
/etc/passwd ##賬號檔案
/etc/shadow ##密碼檔案
/etc/group ##組賬號檔案
/etc/gshadow ##組密碼檔案,很少使用
3.使用者賬號檔案格式:/etc/passwd
使用者名稱:密碼佔位符:UID:GID:全名:家目錄:登陸shell直譯器
密碼佔位符:可能是以密文的字串代表或者X密碼佔位符;
登陸shell直譯器:使用者預設的的直譯器,預設情況使用者使用/bin/bash作為shell,若修改為/sbin/nologin(禁止登陸),
4.使用者密碼檔案格式;/etc/shadow
使用者名稱:MD5加密的密碼字串資訊:上次修改密碼到現在的時間:密碼最短有效天數:密碼最長有效天數:提前幾天警 告使用者密碼將要過期:在密碼過期多少天后禁用賬戶:賬號失效時間(預設為空,表示永久);保留欄位
密碼字串資訊:
!!:未初始化密碼,新建使用者的預設狀態
密碼字串:修改密碼後的狀態
!!加密字串或*加密字串:密碼被鎖定,不能登陸
空:登陸不需要密碼,只能本地登入(無需密碼)
5.組賬號檔案:/etc/group
組名:密碼佔位符:GID:成員列表
二、使用者及組賬號的管理;
1.使用者的管理:
增:useradd 選項 使用者名稱
選項:-d ##指定家目錄 -M ##不指定家目錄
-s ##指定使用者的登陸shell
-g ##指定使用者的基本組
-G ##指定使用者的附加組(可指定GID)
刪:userdel -r 使用者名稱
刪除使用者的同時也將家目錄一併刪除
改:usermod 選項 使用者名稱
選項:包含建立使用者的所有選項
passwd 使用者名稱 ##為使用者設定密碼
passwd 選項 使用者名稱
選項:-d ##清空使用者的密碼(不用密碼登入)
-l ##鎖定使用者
-u ##解鎖使用者
-S ##檢視使用者鎖定狀態
chsh -s 直譯器目錄 使用者名稱 ##更改使用者的shell直譯器
查:
grep 使用者名稱 /etc/passwd ##檢視賬號資訊
id 使用者名稱 ##顯示使用者UID和所屬組
w ##檢視當前主機的登陸情況
2.組的管理:
增:groupadd 組名
選項-g可指定GID;
刪:groupdel 組名
改:gpasswd 選項 使用者名稱 組名
選項:-a ##將單個使用者新增到某個組
-M ##將多個使用者新增到某個組,使用者之間用逗號隔開
-d ##將某個使用者在某個組中刪除
查:
groups 使用者名稱 ##檢視使用者屬於哪個組
grep 組名 /etc/group ##檢視組資訊
三、管理目錄及檔案的屬性;
1.概念:
訪問許可權:讀取(r)、寫入(w)、執行(x)
歸屬:屬主:擁有該檔案的使用者
屬組:擁有該檔案的組賬號
2.檢視檔案或目錄的屬性:
ls -ld 目錄或檔案位置
格式:檔案型別、許可權、inode數量、屬主、屬組、大小、日期、檔名
許可權列表:
第一個字元:檔案型別,d目錄、b塊裝置檔案、c字元裝置檔案、l連結檔案、-普通檔案;
第2-4個字元:屬主對檔案的許可權;
第5-7個字元:屬組對檔案的許可權;
第8-10個字元:任何使用者對檔案的許可權;
許可權的表示:
r:讀取,檢視內容,也可以用4表示;
w:寫入,寫入(刪除、更改、移動等)內容,也可用2表示;
x:執行,執行此檔案或cd到此目錄,也可用1表示;
3.設定檔案或目錄的許可權;
語法:chmod [ugoa] [+-=] [rwx] 檔案或目錄
舉例:chmod g-x, o-r 檔案或目錄
選項:-R 表示遞迴許可權,目錄下的子目錄子檔案繼承父級目錄的許可權;
語法:chmod 775 檔案或目錄
.4.設定目錄或檔案的歸屬;
語法:chown 屬主 檔案或目錄 ##設定其屬主
chown :屬組 檔案或目錄 ##設定其屬組
chown 屬主:屬組 檔案或目錄 ##設定其屬主和屬組
注:選項-R 遞迴可將其子目錄子檔案繼承父級目錄的歸屬;
四、擴充套件:
1.umask檔案反許可權:
umask ##檢視系統的預設許可權反掩碼值,檔案最大許可權為666,目錄最大許可權為777
umask ### ##手動更改檔案許可權的反掩碼值,更改後建立檔案或目錄驗證反掩碼值
2.chattr鎖定檔案:
chattr +i 檔案路徑 ##鎖定檔案,不得移動刪除等
chattr -i 檔案路徑 ##解鎖檔案
3.特殊許可權之setuid 許可權和 setgid 許可權;
語法: chmod u+s 檔案或目錄位置 # 設定setuid許可權
chmod g+s 檔案或目錄位置 # 設定setgid許可權
/etc/passwd的許可權為 -rw-r--r--。也就是說:該檔案的所有者擁有讀寫的許可權,而使用者組成員和其它成員只有檢視的許可權。我們知道,在系統中我們要修改一個使用者的密碼,root使用者和普通使用者均可以用“/usr/bin/passwd 使用者名稱” 這個命令來修改這個/etc/passwd這個檔案,root使用者本身擁有對/etc/passwd的寫許可權,可以理解;那普通使用者沒有寫許可權,那他怎麼也能修改呢?這裡就用到了setuid,setuid的作用是讓執行該命令的使用者以該命令擁有者的許可權去執行,就是普通使用者執行passwd時會擁有root的許可權,這樣就可以修改/etc/passwd這個檔案了。它的標誌為:s,會出現在x的地方,例:-rwsr-xr-x 。而setgid的意思和它是一樣的,即讓執行檔案的使用者以該檔案所屬組的許可權去執行。
4.特殊許可權之stick bit(粘滯位)許可權;
語法: chmod o+t xxx #設定stick bit許可權,針對目錄
我們知道/tmp是系統的臨時檔案目錄,所有的使用者在該目錄下擁有所有的許可權,也就是說在該目錄下可以任意建立、修改、刪除檔案,那如果使用者A在該目錄下建立了一個檔案,使用者B將該檔案刪除了,這種情況我們是不能允許的。為了達到該目的,就出現了stick bit(粘滯位)的概念。它是針對目錄來說的,如果該目錄設定了stick bit(粘滯位),則該目錄下的檔案除了該檔案的建立者和root使用者可以刪除和修改/tmp目錄下的stuff,別的使用者均不能動別人的,這就是粘滯位的作用。
5.特殊許可權之facl(檔案的訪問控制列表)的設定;
在不改變檔案或目錄的歸屬的情況下,使除屬主屬組外的使用者對檔案或目錄有許可權。
語法:setfacl -m u:使用者名稱:rwx 檔案或目錄
setfacl -d -m u:使用者名稱:rwx 目錄 ##設定目錄的預設facl並目錄下所有子檔案子目錄都使用父目錄的預設facl
getfacl 目錄或檔案 ##檢視目標檔案或目錄的acl規則
setfacl -b 檔案或目錄 ##刪除檔案所有的acl規則
setfacl -x u:root 檔案或目錄 ##刪除檔案的一條acl規則
setfacl -m m:w /mnt/test ##設定有效許可權mask,有效許可權(mask) 即使用者或組所設定的許可權必須要存在於mask的許可權設定範圍內才會生效