內容介紹:linux
咱們要使用操做系統進行工做,就須要人機交互操做,這時候計算機就須要建立用戶,經過用戶來實現操做,並且隨着用戶的增長鬚要給用戶分組,這時候就須要對文件進行權限管理。算法
須要使用的工具:shell
用戶相關工具:useradd; userdel; usermod;id;su等;安全
組相關工具:groupadd; groupdel; groupmod等;ide
權限管理工具:chmod; chown; chgrp;umask等;工具
1、用戶類別:加密
管理員:root,管理員用戶標識UID:0spa
普通用戶:(系統用戶和登陸用戶)用戶標識UID:1-65535操作系統
系統用戶:用戶標識UID:1-9993d
登陸用戶:用戶標識UID:1000-60000
2、組類別:
1、組類別1:管理員組;普通用戶組(系統組,登陸組)
組標識GID與用戶標識UID的數據一致,這裏多介紹;
2、組類別2:用戶的基本組;用戶的附加組;
3、組類別3:
私有組:組名同用戶名,且只包含一個用戶;
公共組:組內包含了多個用戶;
3、密碼認證信息:經過比對事先存儲的與登陸時提供的信息是否一致;
密碼:password; /etc/shadow存放用戶密碼信息;/etc/gshadow存放組密碼;
(一)密碼使用策略:
1、使用隨機密碼;二、最短長度不低於8位;三、建議使用大寫字母、小寫字母、數字和標點符號四類中的至少三類;四、按期更換;
(二)加密算法:
1、對稱加密:加密和解密使用同一個密碼;
2、非對稱加密:加密和解密使用的是一對祕鑰;(公鑰 — public key; 私鑰-- private key)
3、單向加密:只能加密,不能解密,提取數據特徵碼;
4、算法 : md5; sha1; sha224; sha256; sha384; sha512
4、用戶信息庫及用戶密碼信息庫詳解;
(一)、用戶信息庫:/etc/passwd;
name:password:UID:GID:GECOS:directory:shell
name: 用戶名;
password: 能夠是加密的密碼,也能夠是佔位符;
UID:用戶標識;root爲0;系統用戶爲1-999;普通用戶爲1000-60000
GID:用戶所屬的主組的ID號;
GECOS:註釋信息;
Directory:用戶的家目錄;
Shell: 用戶的默認shell,登陸時默認的shell程序;
(二)、用戶密碼信息:
第一字段:登陸名,必須是有效的帳戶名,且已經存在於系統中;
第二字段:加密了的密碼;
密碼分三部分,由$分隔;例如:$6$Z48cQG6P$RMmzMjp63eSz3vA8
$6$:6表明加密算法--sha512(1表明md5;2表明sha1等)
$Z48cQG6P$: Z48cQG6P表明添加的隨機數
第三個$後的內容:就是加密後祕串
第三字段:最後一次更改密碼的日期;
第四字段:密碼的最短使用時間;
第五字段:密碼的最長使用期限;
第六字段:密碼警告時間段;
第七字段:密碼禁用期;
第八字段:帳戶過時日期;
第九字段:保留字段;
5、linux用戶和組管理的經常使用工具的使用方法;
(一)組管理相關工具;
1、groupadd命令:建立組;
使用方法:groupadd [選項] group
選項:-g GID :指定GID;
-r: 建立系統組;
2、groupmod命令:修改組屬性;
用法:groupmod [選項] GTOUP
選項:-g GID: 修改GID;
-n new_name: 修改組名;
示例:修改lufei3組的id號爲1001
3、groupdel命令:刪除組;
(二)、用戶相關工具;
1、useradd命令:建立一個新用戶或更新默認新用戶信息
用法:useradd [選項] 登陸
選項:-u: 指定UID
-g: 指定基本組ID,此組要事先存在;
-c: 指明註釋信息,註釋信息要用」」括起來;
-G GROUP1 [,GROUP2,]]: 指明用戶所屬的附加組,多個組之間用,分隔;
-d: 指定路徑爲用戶的家目錄;
-s: 指定用戶的默認shell;
-r: 建立一個系統用戶;
-m: 若是用戶的家目錄不存在,則建立家目錄;
-M: 不建立用戶家目錄;
-f: 密碼過時後,帳戶被完全禁用以前的天數;
示例1:建立一個用戶名爲lufei1,UID爲1005,GID爲1000,註釋信息「useris」,登陸shell: 、/bin/shell;
示例2:建立一個用戶名爲lufei2,主組默認,附加組爲lufei和gdm ,家目錄爲:/tmp/home/
示例3:建立一個系統用戶lufei3,無需家目錄,無需登陸shell;
2、usermod命令:修改一個用戶的帳戶;
用法:usermod [選項] 登陸
選項:-u: 修改用戶的ID爲此處指定的新UID;
-g: 修改用戶所屬的基本組;
-G: 修改用戶所屬的附加組;
-a: 將用戶追加到新的附加組,只能和-G一塊兒使用;
-c: 修改註釋信息;
-d: 修改用戶的家目錄,用戶原來的文件不會轉移至新的位置;
-m: 用於將原來家目錄內容移動到新的位置,只能和-d一塊兒使用;
-l: 修改用戶名;
-s: 修改用戶的默認shell;
-L , -U: 鎖定和解鎖用戶密碼;在用戶原來的密碼字符串以前添加一個「!」;
示例1:修改用戶lufei2 的UID爲1002(原先爲1006),組ID爲1000(原先爲1006),追加附加組爲1001;添加註釋信息爲:my name is;修改其家目錄爲/home/lufei3;
3、userdel命令:刪除用戶帳戶和相關文件;
用法:userdel [選項] 登陸名
選項:-r: 刪除用戶一併刪除其家目錄;
(三)、密碼相關工具詳解;
1、passwd命令:
用法:passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-iinactivedays] [-S] [--stdin] [username]
(1)、passwd: 修改用戶本身的密碼;
(2)、passwd username: 修改指定用戶的密碼;
選項:-l, -u: 加密和解密用戶密碼;
-d: 清除用戶密碼串;
-d: 清除用戶密碼串;
-e DATE: 過時期限,日期;
-i DAYS: 非活動期限;
-n DAYS: 密碼的最短使用期限;
-x days: 密碼的最長使用期限;
-w days: 警告期限;
--stdin: 用法:echo 「password」|passwd --stdin username;直接修改密碼無需交互;
示例:給用戶添加密碼的兩種方式:交互式和非交互式
2、gpasswd命令:給組添加密碼;用法:gpasswd [選項] group;
選項:-a username: 向組中添加用戶;
-d username: 從組中移除用戶;
3、newgro命令:臨時切換指定組爲基本組;
用法:newgrp [-] [group]
-: 會模擬用戶從新登陸以實現從新初始化其工做環境;
4、chage命令:更改用戶密碼過時信息;用法:chage [選項] 登陸名
選項:-l:列出用戶的以及密碼的有效期限
-m:修改密碼的最小天數
-M:修改密碼的最大天數
-I:密碼過時後,鎖定賬號的天數
-d:指定密碼最後修改的日期
-E:帳戶過時時間,0表示當即過時,-1表示永不過時
-W:密碼過時前,開始警告天數
示例:
5、id命令:顯示用戶的真實和有效的ID
用法:id [option]…[username]
選項:-u: 僅顯示有效的UID;
-g: 僅顯示用戶的基本組ID;
-G: 僅顯示用戶所屬的全部組的ID;
-n: 顯示名字而非ID;
6、su 命令:切換用戶
登陸式切換:會經過讀取目標用戶的配置文件來從新初始化;
su - username 或 su -l username
非登陸式切換:不會讀取目標用的配置文件進程初始化;
su username
注意:管理員可無密碼切換至其餘任何用戶;
6、權限管理:
使用ls –l 查看一個文件的長格式時;在最左側有一串字符,
例如:rwxrwxrwx:
左三位:定義user(owner)的權限;
中三位:定義group的權限;
右三位:定義other的權限;
(一),三位權限位對應文件和目錄的意義;
1、文件:
r: read: 可獲取文件的數據;
w: write: 可修改文件的數據;
x: excute: 可將此文件運行爲進程;
2、目錄:
r: 可以使用ls命令獲取其下的全部文件列表;
w: 可修改此目錄下的文件列表;即建立或刪除文件;
-x: 可cd至此目錄中,且可以使用ls –l來獲取全部文件的詳細屬性信息;
3、進程對文件的訪問權限應用模型:進程的屬主與文件的屬主是否相同;若是相同,則應用屬主權限;不然,則檢查進程的屬主是否屬於文件屬組,若是是,則應用屬組權限;不然,就只能應用other的權限;
4、權限的組合機制:
字符標識方法: --- --x -w- -wx r-- r-x rw- rwx
二進制標識方法: 000 001 010 011 100 101 110 111
八進制標識方法: 0 1 2 3 4 5 6 7
能夠簡單認爲 r=4; w=2; x=1; 因此在修改權限時就可使用數字修改,更直觀;
例如:rwxr-xr-x = 755;說明:左三位rwx權限相加4+2+1=7;
中三位r-x權限相加4+0+1=5;
右三位r-x權限相加4+0+1=5;
(二)、權限管理命令:
1、命令說明:chmod命令:權限管理;
使用語法:
chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE...
選項:
-R:遞歸修改,通常只和受權表示法一塊兒使用;
三類用戶:
u: 屬主; g: 屬組;o: 其餘人; a: 全部
(1),第一種語法使用方法:
chmod [OPTION]...MODE[,MODE]... FILE...
賦權表示法:u= ; g= ; o = ; a= ;
權限相同能夠一塊兒寫
權限不相同,只能分開寫,要用,分隔開;
示例:
受權表示法:直接操做一類用戶的一個權限位r, w, x;
u+, u-; g+, g-; o+, o-; a+, a-;
示例:
(2)、第二種語法使用方法:
chmod [OPTION]... OCTAL-MODEFILE...
八進制權限位法:
示例:
(3)、第三種語法使用方法:
chmod [OPTION]...--reference=RFILE FILE...
參考一個文件來修改另外一個文件,應用型修改;
示例:
2、chown命令:修改文件的屬主和屬組;
語法格式:
chown [OPTION]...[OWNER][:[GROUP]] FILE... 經常使用方法
chown [OPTION]... --reference=RFILE FILE...
示例:
3、chgrp命令:和chown用法相同,這裏再也不多解釋;
4、umask命令:文件的權限反向掩碼,這掩碼:默認是022;
文件:666-umask
目錄:777-umask
注意:之因此文件用666去減,表示文件默認不能擁有執行權限;若是減的結果又執行權限,則須要將其加1;
umask:023
666-023=644
777-023=754
umask: 查看當前umask;
umask MASK: 設置umask;
注意:此類設定僅對當前shell進程有效;
7、linux系統上的特殊權限:SUID, SGID ,STICKY
安全上下文:
(1)、進程以某用戶的身份運行,進程是發起此進程用戶的代理,所以以此用戶的身份和權限完成全部操做;
(2)、權限匹配模型:
a、判斷進程的屬主,是否爲被訪問文件的屬主,若是是,則應用屬主的權限;不然進入第二步;
b、判斷進程的屬主,是否屬於被訪問文件的屬組;若是是,則應用屬組的權限;不然進入第三步;
c、應用other權限
SUID:
默認狀況下,用戶發起的進程,進程的屬主是其發起者;所以,其以發起者的身份運行;(注意:這時的文件的屬主和進程的屬主是兩回事,不是相同的)
SUID的功用:用戶運行某程序時,若是此程序擁有SUID權限,那麼程序運行爲進程時,進程的屬主不是發起者,而是程序文件本身屬主;
管理文件的SUID 權限:chmod u+ | -s file...
展現位置:屬主的執行權限位
若是屬主本來有執行權限,顯示爲小寫s; 不然,顯示爲大寫S;
SGID:
功用:當目錄屬組有寫權限,且有SGID權限時,那麼全部屬於此目錄的屬組,且以屬組身份在此目錄中新建文件或目錄時,新文件的屬組不是用戶的基本組而是此目錄的屬組
管理文件的SGID權限:chmod g+| -s file...
展現位置:屬組的執行權限位
若是屬組本來有執行權限,顯示爲小寫s; 不然,顯示爲S;
Sticky:
功用:對於屬組或全局可寫的目錄,組內的全部用戶或系統上的全部用戶對在此目錄中都能建立新文件或刪除全部的已有文件,若是爲此類用戶設置的sticky權限,則每一個用戶能夠建立文件,沒法刪除或修改其餘用戶建立的文件,只能刪除或修改本身建立的文件;
管理文件sticky權限:chmod o+ | -t file...
展現位置:其餘用戶的執行權限位
若是其餘用戶本來有執行權限,顯示爲小寫t; 不然,顯示爲大寫T;
系統上的/tmp和/var/tmp目錄默認均有sticky權限;