用戶和組賬戶的管理
阿新 • • 發佈:2018-06-08
用戶和組
用戶和組賬戶的管理的基礎和基本操作
計算機就是讓我們使用資源的,但是我們的計算機不能讓每個人的權限一樣,所以我們需要設置多個不同權限的用戶,有不同的身份認證,從而使用不同的操作。從而就有了多任務操作系統。
計算機能夠實現資源使用和完成任務的主體是:應用程序進程
進程是以發起者的身份運行的:可以理解為,進程的所有者就是其發起者;每個進程上都會標記上其所有者的身份信息;
當進程試圖訪問資源的時候,安全上下文回避對進程的所有者和資源的所有者之間的關系:
首先,查看進程的所有者是否和資源的所有者為同一用戶,如果是,就按照所有者擁有的權限來使用資源;如果不是,則進行下一步的判斷;
如果不是,則判斷按進程的所有者是否屬於該資源所屬組的成員;如果是,按照所屬組的權限來使用資源;
如果不是,就按照最為普通的其他用戶的權限來使用資源;
用戶賬戶:實現操作者和計算機交互式操作的基礎,是操作者的身份在滿足了驗證條件之後的計算機系統中的映射;我們輸入我們想要的操作,計算機會幫我們進行實現操作。
用戶賬戶分類:
超級用戶(管理員):root
普通用戶:
系統用戶(非登錄用戶):
為了保證安全,往往會讓某些進程或服務必須以非管理員的用戶身份運行;這類非管理員用戶,稱為系統用戶;此類用戶一般不允許登錄到系統的;是很危險的用戶。
登錄用戶:
能夠通過登錄行為驗證用戶身份進而獲得資源訪問權限並可以對資源進行操作的用戶,可以稱為登錄用戶;
用戶賬戶的標識方式:
用戶登錄名稱:
為操作者提供簡單易記的字符串標識;一般我們的用戶名
用戶數字ID(UID):
為計算機操作系統提供的標準的數字標識符號,0~2^32-1,真正的計算機識別的“用戶名”
超級用戶:
用戶名:root
UID:0
普通用戶:
系統用戶:
centos 6以前:1~499
centos 7以後:1~999
登錄用戶
centos 6以前:500+
centos 7以後:1000+
註意:60000+的UID通常需要用戶自定義標識,後面會說;
名稱解析:
用戶名 <--> UID
用戶名解析庫: /etc/passwd(用tail命令可以看)
操作系統中的認證組件通過解析庫實現認證機制,即驗證登錄用戶是否為已經存在的用戶;
用戶認證庫: /etc/shadow(用tail命令可以看)
通過此前的解析庫認證用戶是存在的,在經過認證庫的認證,來證明登錄用戶就是其聲明的用戶;
默認的認證機制:密碼認證;
密碼復雜性要求:
1.盡量避免使用有規律的或者來源於字典中的字符串作為密碼;
2.密碼要足夠長,一般不得少於6個字符;
3.密碼要足夠復雜,其中應該至少包括大寫字母,小寫字母,數字及其他符號中的三類;
4.不定期更換,每隔一段時間進行密碼更換;
在linux中,保存到認證庫的密碼是經過單向加密算法處理過的;
能夠加密密碼的算法:
MD:
MD5,Message Digest Version 5,消息摘要算法第5版;128位定長輸出;
SHA:Secure Hash Algorithm,安全的哈希算法;
sha1:160位加密輸出
sha224:
sha256:
sha384:
sha512:默認的加密算法;
salt:通過隨機算法計算得到的隨機數;
隨機數的生成裝置:
/dev/random:
僅僅是從熵池中返回隨機數;如果熵池中隨機數耗盡,進程會被阻塞;
/dev/urandom:
首先是從熵池中返回隨機數;如果熵池中隨機數耗盡,則利用偽隨機數生成器生成偽隨機數;
在認證庫中的密碼的最終形態:算法+salt+加密字符串;
算法:$1~$6
salt:$隨機字符串
加密字符串:$單向加密的結果
組賬戶:將具有某些相同或相似屬性的用戶聯系在一起以便可以集中授權的容器;就和小組是一樣的
組的分類:
超級用戶組
普通用戶組
系統用戶組
登錄用戶組
組賬戶的表示方法:
組賬戶名稱:
組賬戶ID(GID):
超級用戶組:0
系統用戶組:
centos 6-:1~499
centos 7+:1~999
登錄用戶組:
centos 6-:500+
centos 7+:1000+
組名解析:
解析庫:/etc/group
認證庫:/etc/gshadow
組也需要使用密碼加密保護
用戶賬戶和組賬戶之間的關系:
在linux中,每個用戶必須至少屬於一個組:
用戶賬戶的GID表示被稱為用戶的主要組(基本組),Primary
Group:每個用戶必須要有主要組,而且只能有一個;
在主要組的基礎之上,用戶可以與其他的組賬戶存在邏輯關系,此類組稱為用戶的附加組(附屬組,額外組),Addtion Group;對於用戶來收縮,此類組可以沒有,也可以有多個;
用戶和組管理的管理命令:(這些操作可以從後邊課後習題看出來)
組賬戶的管理命令:
groupadd、groupdel、groupmod
用戶賬戶的管理命令:
useradd、userdel、usermod
認證相關的命令:
passwd、gpasswd
其他的相關命令:
chage,chsh,finger,su,id
與用戶和組相關的命令:
1.groupadd - 創建一個新組
格式: groupadd [選項] group
常用選項:
-g GID:指定要創建的組的GID;
-r:將組創建為系統組,此時應該保證GID在系統指定範圍內;
2.groupdel - 刪除一個組
格式:groupdel [選項] group
註意:如果某個組是某個用戶的主要組,則該組不能刪除;
3.groupmod
groupmod - modify a group definition on the system
格式:
groupmod [選項] GROUP
常用選項:
-g GID:修改指定組的GID
-n GROUP_NAME:修改指定組的組賬戶名稱;
4.useradd
useradd - 創建一個新用戶或更新默認新用戶信息
格式:
useradd [選項] username
useradd -D [選項]
常用選項:
-c, --commentCOMMENT:為用戶添加註釋信息;
-d, --homeHOME_DIR:為用戶指定家目錄的路徑;此目錄不能事先存在;
-e, --expiredateEXPIRE_DATE:用戶密碼的過期的絕對時間;如:2018/01/01
-f, --inactiveINACTIVE:為用戶指定密碼使用達到最大時間之後的寬限期;
-g, --gidGROUP:為用戶指明GID;如果不寫此選項,系統會創建一個與組用戶名相同的組並且將之設置為詞用的主要組;
-G, --groupsGROUP1[,GROUP2,...[,GROUPN]]]:為用戶添加附加組;
-m, --create-home: 必須為用戶創建家目錄
-M, --no-create-home: 不為用戶創建家目錄;再創建系統用戶時常用此選項;
-s, --shellSHELL:為用戶指定默認的shell
-r, --system:為系統創建一個新的系統賬戶
-u, --uidUID:為用戶指定UID;
5.userdel
userdel - 刪除用戶賬戶和相關文件
格式:userdel [選項] username
常用選項:
-r, --remove:用戶主目錄中的文件將隨用戶主目錄和用戶郵箱一起刪除。在其它文件系統中的文件必須手動搜索並刪除。
6.usermod
usermod - 修改一個用戶賬戶
格式:usermod [選項] username
常用選項:
-c, --commentCOMMENT:修改用戶的註釋信息;
-d, --homeHOME_DIR:修改用戶的家目錄;如果再加上 -m 參數(只與-d配合)。則會將現有home目錄的地址重命名為新的home目錄地址,如原來沒有指定home目錄地址,則為賬號新建一個指定的home目錄地址。
-e, --expiredateEXPIRE_DATE:修改用戶密碼過期的絕對日期;
-f, --inactiveINACTIVE:修改用戶密碼過期之後的寬限期;
-g, --gidGROUP:修改用戶的主要組(GID);
-G, --groupsGROUP1[,GROUP2,...[,GROUPN]]]:修改用戶的附加組為此列表中的組,如果同時使用了-a選項,則保留原有的附加組,即將此列表中的組追加至用戶的附加組列表;
-l, --loginNEW_LOGIN:修改用戶的登錄名;
-s, --shellSHELL::修改用戶的登錄shell;
-u, --uidUID:修改用戶的UID;
-L, --lock:鎖定用戶;
-U, --unlock:解鎖被usermod -L鎖定的用戶;
7.passwd
passwd - update user s authentication tokens
格式:passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inac‐
tivedays] [-S] [--stdin] [username]
常用選項:
-l, --lock:鎖定用戶;
-u, --unlock:解鎖用戶;
--stdin:通過標準輸入接受密碼,可以用於管道;
-d, --delete:刪除用戶的密碼,也可以用於解除用戶鎖定;
-e, --expire:直接設置用戶密碼過期;
-n, --minimum DAYS:用戶密碼的最短使用時長;默認值為0
-x, --maximum DAYS:用戶密碼的最長時間時長;默認值為99999
-w, --warning DAYS:用戶密碼過期之前多少天開始發送警告信息;
-i, --inactive DAYS:用戶密碼過期之後的寬限期;
8.change
chage - 更改用戶密碼過期信息
格式:chage [選項] username
常用選項:
-d, --lastdayLAST_DAY
-E, --expiredateEXPIRE_DATE
-I, --inactiveINACTIVE
-l, --list
-m, --mindaysMIN_DAYS
-M, --maxdaysMAX_DAYS
-R, --rootCHROOT_DIR
-W, --warndaysWARN_DAYS
9.chsh
chsh - 改變登錄 shell
chsh [ -s shell ] [ -l ] [ -u ] [ -v ] [ username ]
10.finger
finger — 用戶信息查找程序
finger [-lmsp] [user ...] [user@host ...]
11.id
id - 顯示真實和有效的 UID 和 GID
id [OPTION]... [USERNAME]
常用選項:
-u, --user: 只 顯示 用戶 ID
-n:顯示名稱
-g:顯示GID
12.su
su - 運行替換用戶和組標識的shell
su [OPTION]... [-] [USER [ARG]...]
常用選項:
-, -l, --login:以後面的用戶身份登錄到系統;
-c, --commmand=COMMAND:以前面指定的用戶運行COMMAND,
用戶和組賬戶的管理