一 用戶配置文件
1 用戶信息文件 /etc/passwd
我們先打開這個文件看一下
這裡涉及到一些格式,我們還記得用man可以查看配置信息的幫助
man 5 passwd
這裡看到:分割的每一項都有做詳細說明,我們來總結下這裡
第1個字段:用戶名稱
第2個字段:密碼標志,我們可以看到都是x,那麼真實的密碼在哪裡呢,我們來看/etc/shadow文件
這裡我們看到root對應的第二個字段就是root的密碼,顯然是經過加密的,那麼為什麼密碼不直接放在passwd中呢,我們看下兩個文件的詳細權限
對於passwd的,一般用戶還是可以可讀的,但是對於shadow,就什麼權限都沒有了,只有root可以查看,這樣做是為了更安全些。
第3個字段:UID(用戶ID)
我們可以發現在passwd中除了root用戶我們認識,還有很多其他的我們沒見過的,這些叫系統用戶(偽用戶),不能登錄,只是在做系統調用服務的時候用到,我們不用管它們即可
0:超級用戶
1-499 系統用戶(偽用戶)
500-65535 普通用戶
第4個字段:GID(用戶初始組ID)
這裡我們要區分下初始組和附加組
初始組:就是指用戶一登錄就立刻擁有這個組的相關權限,每個用戶的初始組只能有一個,一般就是和這個用戶的用戶名相同的組名作為這個用戶的初始組
附加組:指用戶可以加入多個其它的用戶組,並擁有這些組的權限,附加組可以有多個
第5個字段:用戶說明,這個一般就是描述信息
第6個字段:家目錄
普通用戶:/home/用戶名/
超級用戶:/root/
第7個字段:登錄之後的shell
二 影子文件 /etc/shadow
我們打開這個文件來看一下
第1個字段:用戶名
第2個字段:加密密碼,加密算法是SHA512加密算法,如果是“!!”“*”代表沒有密碼,不能登錄
第3個字段:密碼最後一次修改日期,我們看到root的這個字段是17105,這個是使用1970年1月1日作為標准時間,每過一天,時間戳+1
第4個字段:兩次密碼的修改間隔時間(和第3個字段相比),就是說多少天後可以修改這個密碼,我們看到root用戶的這個字段是0
第5個字段:密碼有效期(和第3個字段相比),我們看到root用戶的這個字段是99999,基本上是永久有效
第6個字段:密碼到期前的警告天數(和第5個字段相比),也就說比如我們在第5個字段設置了一個密碼有效期,比如10天,然後我們這個字段設置是7,那麼就是還剩7天到期的時候,就會有警告了。
第7個字段:密碼過期後的寬限天數(和第5個字段相比)
0代表密碼過期後立即失效,-1代表永遠不會失效
第8個字段:賬號失效的時間(要用時間戳表示),如果這個字段設置了失效時間,前面設置的有效期就沒用了。
第9個字段:保留
那麼我們剛才一直在說時間戳,接下來我們看下時間戳的換算公式
1 把時間戳換算為日期
date -d “1970-01-01 16066 days”
我們把16066的時間戳轉換為日期
2 把日期轉換為時間戳
三 組信息文件/etc/group和組密碼文件/etc/gshadow
1 組信息文件/etc/group
我們打開這個文件看一下
第1個字段:組名
第2個字段:組密碼標志
第3個字段:GID
第4個字段:組中附加用戶
2 組密碼文件/etc/gshadow
第1個字段:組名
第2個字段:組密碼
第3個字段:組管理員用戶名
第4個字段:組中附加用戶
兄弟連沈超老師說不推薦組密碼方式管理,一般用root管理,所以這裡了解即可
四 用戶管理相關文件
1 用戶的家目錄
普通用戶 :/home/用戶名/,所有者和所屬組都是此用戶,權限是700
超級用戶:/root/,所有者和所屬組都是root,權限是550
2 用戶的郵箱
/var/spool/mail/用戶名/
比如我們創建一個用戶fuqiang,然後到這個路徑下查看,就會發現這個路徑下自動生成了這個新用戶的郵箱
3 用戶模板目錄
/etc/skel/
我們看下這個目錄
我們看到這個目錄下的內容和/home/用戶名下的內容是一樣的,也就是說,在創建用戶的時候,在/home/用戶名下,就會自動生成這些模板目錄下的文件
五 用戶管理命令
1 用戶添加命令useradd:
useradd 選項 用戶名
選項:
-u UID 手動指定用戶的UID,我們知道普通用戶的UID是從500,自動往後排的,如果我想設置一個吉利的數字,比如888,就可以用這個選項
-d 家目錄,比如我們不想放在/home下,就可以用這個選項改
-c 用戶說明
-g 組名:手工指定用戶的初始組,這個一般不建議修改
-G 組名:手工指定用戶的附加組
-s shell:手工指定用戶的登錄shell,默認是/bin/bash
那麼如果我們不加任何選項,默認是怎麼樣的呢,比如我現在添加一個fq的用戶
我們來查看一下跟用戶相關的文件信息
我們可以看到默認的這些信息
那麼用戶默認值文件在哪裡呢,