[Linux之許可權管理⽤戶組管理]
阿新 • • 發佈:2021-06-20
[Linux之許可權管理⽤戶組管理]
許可權管理使用者組管理
RBAC 許可權管理
RBAC(Role-Based Access Control,基於角色的訪問控制),就是使用者通過角色與許可權進行關聯。簡單地說,一個使用者擁有若干角色,每一個角色擁有若干許可權。這樣,就構造成“使用者-角色-許可權”的授權模型。在這種模型中,使用者與角色之間,角色與許可權之間,一般者是多對多的關係。
RBAC許可權模型的擴充套件模型的完整設計圖
如何檢視使用者相關資訊
id # 獲取當前使用者的資訊
whoami # 獲取當前使用者
linux系統中使用者角色劃分
在linux系統中,⽤戶分為管理員⽤戶與其他⽤戶 而其他使用者又分為系統使用者和普通使用者 使用者uid小於1000的是系統使用者 使用者uid大於等於1000的是普通使用者
使用者與組相關檔案介紹
/etc/passwd --> 使用者配置檔案
第⼀欄位:⽤戶名(也被稱為登入名);
第⼆欄位:⼝令;在例⼦中我們看到的是⼀個x,其實密碼已被對映到/etc/shadow⽂件中;第三欄位:UID;請參看本⽂的UID的解說;
第四欄位:GID;請參看本⽂的GID的解說;
第五欄位:描述資訊,可選
第六欄位:⽤戶的家⽬錄所在位置;
第七欄位:⽤戶所⽤SHELL的型別
/etc/shadow --> 使用者的密碼檔案
第⼀欄位:⽤戶名(也被稱為登入名),在/etc/shadow中,⽤戶名和/etc/passwd 是相同的,這樣就把 passwd 和shadow中⽤的⽤戶記錄聯絡在⼀起;這個欄位是⾮空的; 第⼆欄位:密碼(已被加密),如果是有些⽤戶在這段是x,表示這個⽤戶不能登入到系統;這個欄位是⾮空的; 第三欄位:上次修改⼝令的時間;這個時間是從1970年01⽉01⽇算起到最近⼀次修改⼝令的時間間隔(天數), 您可以通過passwd 來修改⽤戶的密碼,然後檢視/etc/shadow中此欄位的變化; 第四欄位:兩次修改⼝令間隔最少的天數;如果設定為0,則禁⽤此功能;也就是說⽤戶必須經過多少天才能修改 其⼝令;此項功能⽤處不是太⼤;預設值是通過/etc/login.defs⽂件定義中獲取,PASS_MIN_DAYS 中有定 義; 第五欄位:兩次修改⼝令間隔最多的天數;這個能增強管理員管理⽤戶⼝令的時效性,應該說在增強了系統的安全 性;如果是系統預設值,是在新增⽤戶時由/etc/login.defs⽂件定義中獲取,在PASS_MAX_DAYS 中定義; 第六欄位:提前多少天警告⽤戶⼝令將過期;當⽤戶登入系統後,系統登入程式提醒⽤戶⼝令將要作廢;如果是系 統預設值,是在新增⽤戶時由/etc/login.defs⽂件定義中獲取,在PASS_WARN_AGE 中定義; 第七欄位:在⼝令過期之後多少天禁⽤此⽤戶;此欄位表示⽤戶⼝令作廢多少天后,系統會禁⽤此⽤戶,也就是說 系統會不能再讓此⽤戶登入,也不會提示⽤戶過期,是完全禁⽤; 第⼋欄位:⽤戶過期⽇期;此欄位指定了⽤戶作廢的天數(從1970年的1⽉1⽇開始的天數),如果這個欄位的值 為空,帳號永久可⽤; www.hackdig.com 第九欄位:保留欄位,⽬前為空,以備將來Linux發展之⽤; 如果更為詳細的,請⽤ man shadow來檢視幫助,您會得到更為詳盡的資料;
/etc/group --> 組配置檔案
/etc/gshadow --> 組的密碼檔案
使用者管理命令
建立使用者 :useradd 使用者名稱 1) 掌握useradd命令的功能:新增⼀個⽤戶。 2) 瞭解useradd命令的常⽤選項: 3) –u:指定⽤戶的UID 4) –g:指定⽤戶所屬的主群 # 使用者組必須是已經存在的 –G:指定⽤戶所屬的附加群 5) –d:指定⽤戶的家⽬錄 # 預設當前使用者名稱作為/home下的家的檔名,-d 可以指定路徑作為家目錄 6) –c:指定⽤戶的備註資訊 # 在使用者資訊的第五列,預設為空,只有root裡面備註是root 7) –s:指定⽤戶所⽤的shell 8) -e:修改過期時間 9) -M: 不建立家⽬錄 10) -r: 建立系統賬戶,uid處於系統⽤戶範圍內,預設就沒有家⽬錄 刪除使用者 :userdel 使用者名稱 # 刪除之後在passwd目錄中使用者已經不存在了,但是/home裡面還有該使用者資料夾 userdel -r 使用者名稱 # 徹底刪除,passwd和/home都不會再有使用者資訊 修改使用者 :usermod 使用者名稱 -u: 修改使用者的UID –g:指定⽤戶所屬的主群 # 使用者組必須是已經存在的,否則無法修改 id user6 修改前:uid=1009(user6) gid=1009(user6) 組=1009(user6) usermod user6 -g 1003 # 1003的組ID現在就是liuhaojie 修改後:uid=1009(user6) gid=1003(liuhaojie) 組=1003(liuhaojie) 但是此時user6 使用者在/etc/group 裡面 user6:x:1009: -G:指定⽤戶所屬的附加群 id user6 修改前:uid=1009(user6) gid=1003(liuhaojie) 組=1003(liuhaojie) usermod user6 -G 1005 修改後:uid=1009(user6) gid=1003(liuhaojie) 組=1003(liuhaojie),1005(user5) 此時/etc/group的user5使用者的附加組會加上user6 user5:x:1005:user6 user6:x:1009: 修改密碼 :passwd 使用者名稱 建立組 :groupadd 修改組 :groupmod -g :修改使用者組的GID # 必須是不能存在的使用者組GID 修改前: id user6 : uid=1009(user6) gid=1003(liuhaojie) 組=1003(liuhaojie),1005(user5) /etc/group : user6:x:1009: 修改後: groupmod user6 -g 1006 id user6 : uid=1009(user6) gid=1003(liuhaojie) 組=1003(liuhaojie),1005(user5) /etc/group : user6:x:1006: 刪除組 :groupdel
關於 usermod 的 小 g 和 大 G 以及 groupmod 的 小 g 總結
usermod -g 是用來修改使用者的GID,也就是把當前使用者的UID改成其他使用者的UID(主組ID或者說初始ID),同時附加組會預設加入一個當前UID命名的附加組的ID
usermod -G 是用來修改使用者的附加組的,可以增加很多很多附加組,增加附加組之後,使用者就有了附加組對應的UID許可權,也就是說,user5使用者的附加組是user4,那麼允許user4組讀取的檔案,user5也可以讀取
groupmode -g 是修改使用者主組的ID,這個ID就是usermode -g 指向的ID,如果其他使用者用usermode -g 指向這個id 就表示其他使用者設定了UID就是這個組ID
總結部分:
可以說,在cat /etc/group 裡面看到的使用者主組和附加組,主組是初始ID,作為一個證明(身份證號),可以理解成資料庫的主鍵,而附加組則可以理解為哪些使用者關聯了這個使用者主鍵!關聯主鍵的使用者就作為組員而存在,被關聯主鍵的使用者是組長,他們在一起組成的組以被關聯主鍵的使用者名稱命名。組員會根據組長擁有的許可權而擁有許可權,代表組長擁有什麼許可權,所有的組員就會有什麼許可權。在此。groupmod -g 修改的就是這個初始ID ,如果修改了這個初始ID ,檢視附加組裡面的使用者ID也會跟著顯示修改後的主鍵使用者初始ID,有點類似級聯更新。
修改密碼的兩種方式:
第一種:命令修改
第二種:編輯使用者密碼檔案
root密碼如何設定為空
編輯使用者配置檔案,把 root:x 後面的這個x去掉,x代表的是密碼佔位符,去掉表示使用者登入不校驗密碼
手動建立一個使用者
# 自己建立使用者
1、建立使用者組:/etc/group
2、建立使用者組密碼檔案:/etc/gshadow
3、建立使用者:/etc/passwd
4、建立使用者密碼:/etc/shadow
5、建立家目錄
6、修改許可權,複製隱藏檔案
help補充
如果有些指令忘記怎麼操作
可以使用
指令 --help
來獲取提示