linux之账号管理
linux系統上的用戶登錄主機獲取shell的環境工作時,是如何進行的呢?
首先在PC前利用tty1~tty7終端機提供的login接口,并輸入賬號和密碼進行登錄,輸入賬號和密碼后系統做了什么呢?
a、尋找 /etc/passwd 里面是否有輸入的賬號,如果沒有則跳出,如果有則將該賬號對應的 UID 和 GID(在 /etc/group)讀出來,此外將該賬號的主文件夾和shell設置也一起讀出
b 、核對密碼表,此時linux會進入到 /etc/shadow 里面找到對應賬號的 UID,然后核對剛才輸入的密碼
c、一切正確,進入shell控制階段
1、/etc/passwd 文件結構解析
該文件的每一行都代表一個賬號,有幾行就有幾個賬號,里面有很多賬號是系統運行所必要的賬號
由于每一行的結構相同,這里分析第一行作為示例,每個字段是以 “ :”進行分割的,共有7個字段
root :x :0 :0 :root :/root :/bin/bash1 2 3 4 5 6 7字段1:root 為賬號,用來對應 UID
字段2:密碼,早起的UNIX系統的密碼放置在該字段上,因為這個文件的特性是所有程序都能訪問和讀取,這樣密碼很不安全,? ? ? ? ? ? ? 就將密碼統一放置到 /etc/shadow中了,所以這里看到一個未知數 x.
字段3:UID ,如果UID為0,表示這個賬號是系統管理員,1-499保留給系統使用的UID,500-65535給一般用戶使用
字段4:GID,這個和/etc/group 有關,規定組名和 GID的對應關系
字段5:用戶信息說明列
字段6:用戶的主文件夾,該例子中,root賬號的主文件夾是/root,普通用戶的主文件夾默認為 /home/yourIDname中
字段7:shell,當用戶登錄系統后就會取得一個shell來與系統的內核通信以便進行用戶的操作,為什么shell會使用bash呢?就? ? ? ? ? ? ? ?是這個字段指定的
2、/etc/shadow 文件結構解析
? ? ? ? 程序的運行和文件的權限有關,而權限和? UID 和 GID 有關,因此程序要讀取 /etc/passwd 來知道不同賬號的權限,因此 /etc/passwd 的權限需要設置為 -rw-r--r--這樣的情形。為了安全將密碼移至 /etc/shadow中
每一行表示一個賬號,共有9個字段,同樣也是以 “:”進行字段分隔的
字段1:賬號,必須與 /etc/passwd相同才可以
字段2:密碼,經過加密之后的密碼
字段3:最近更改密碼的日期,示例中為 17600,因為時間的基準是1970年1月1日,到1971年1月1日為366
字段4:密碼不可被更改的天數,相對于字段3而言,這個字段記錄了賬號的密碼在最近一次更改戶需要多少天之后才可以被更改
? ? ? ? ? ? ,為0表示隨時可以更改,如果設置為10,設置密碼之后,表示10天之內不能被更改
字段5:密碼需要重新更改的天數,相對于字段3,為了強制用戶不定期更改密碼,這個字段可以指定在最近一次更改密碼后在多? ? ? ? ? ? ? 少天內需要再次更改密碼,因此設置之后,必須在這個天數內更改密碼,否則這個賬號的密碼會變為過期特性,如果是? ? ? ? ? ? ? ?99999,就是293年,表示密碼更改沒有強制之意
字段6:密碼需要更改期限前的警告天數,相對于字段5,依據字段5,系統設置發出告警通知用戶再過多少天密碼過期的天數
字段7:密碼過期后的賬號寬限時間(密碼失效日),像對于字段5,更新日期(字段3) + 重新更改日期(字段5) = 密碼有效期日? ? ? ? ? ? ? ? 期,過了該期限,登錄賬號是系統會強制賬號修改密碼
字段8:賬號失效日期,相對于字段5,也是以1970位時間基準,這個個賬號在此字段規定的日期后,將無法使用
字段9:保留字
大篇幅的文字容易混淆,這里舉個例子加深理解:
1、最近一次修改密碼的時間為2009/02/24,即字段3的值
2、密碼不可更改的天數設置為5天,即字段4為5,意味著2009/03/01以前不能修改該賬戶自己的密碼
3、密碼需要重新更改的天數為60天,即字段5設置為60天,所以表示日期為2009/04/25,所以用戶必須在2009/03/01到? ? ? ? ? ? ? ?2009/04/25之間的60天內修改密碼,否則該密碼過期
4、警告日期為7天,即字段6為7,即是密碼過期的前7天,表示在2009/04/19-2009/04/25之間,如果用戶沒有修改密碼,系? ? ? ? ?統會提示修改密碼,如果一直到2009/04/25一直沒有修改密碼,則密碼就過期了
5、字段7為5,表示密碼過期后的寬泛期,由于在2009/04/25之前都沒有修改密碼,導致密碼過期,但是由于有5天的寬泛期
? ? ? 因此用戶還可以使用原來的賬號和密碼進行登錄,不過登錄時會出現強制修改密碼的情況
3、有效與初始用戶組
認知了賬號和密碼所在文件后,那用戶組的配置文件存放在何處呢?
在/etc/passwd 中第4個字段為 GID ,此時需要了解到 /etc/group 和 /etc/gshawod文件
同上面,也是以":"進行分隔
字段1:用戶組名
字段2:用戶組密碼,同樣密碼移至到 /etc/gshadow中
字段3:GID,和 /etc/passwd 中的第4個字段對應
字段4: 此用戶組支持的賬號名稱
? ? ? ? ? ? ?一個賬號可以加入到多個用戶組中,如daemon賬戶中加入了daemon用戶組,用戶組之間使用逗號,不要有空格
切換到普通賬戶下,查看其用戶組,發現賬戶rhx支持的用戶組為 rhx ,通過vim命令進入到 /eyc/group中,找到GID 為500 的用戶所對應的賬號,但是這里顯示的是空的,因為這是初始用戶組,用戶一登錄就會主動獲得,不需要在字段4上填寫該用戶所支持的賬號名稱了
那什么是有效用戶組合初始用戶組呢?
所謂的 GID 就是對應的初始用戶組,用戶一登錄就會擁有這個用戶組的相關權限
那什么是有效用戶組呢?
通過groups命令查詢
[root @localhost ~]#groups查詢的結果中第一個組就是用戶的有效組了,可以不可以修改有效組呢,當然可以,使用命令newgrp?
[root @localhost ~]#newgrp users/etc/gshadow
字段1:用戶組名
字段2:密碼
字段3:用戶組管理的賬號
字段4:用戶組所屬賬號
總結
以上是生活随笔為你收集整理的linux之账号管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux之循环
- 下一篇: Linux之文件压缩与打包