歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux用戶和用戶組管理

Linux用戶和用戶組管理

日期:2017/3/1 11:42:52   编辑:關於Linux

一 用戶配置文件

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的用戶

這裡寫圖片描述

我們來查看一下跟用戶相關的文件信息

這裡寫圖片描述

我們可以看到默認的這些信息

那麼用戶默認值文件在哪裡呢,

這裡寫圖片描述

這裡寫圖片描述

2 修改用戶密碼passwd:

passwd 選項 用戶名

-S 查詢用戶密碼的密碼狀態,僅root用戶可用

這裡寫圖片描述

2016-11-03 用戶密碼設定時間

0 密碼修改間隔時間

99999 密碼有效期

7 警告時間

-1 密碼不失效

-l 暫時鎖定用戶,僅root用戶可用,鎖定用戶,這個用戶就不能登錄了,其實就是修改shadow文件中對應密碼的字段,前面加!!

-u 解鎖用戶,僅root用戶可用

還可以使用字符串作為用戶的密碼

echo “123 ”| passwd -stdin fq

這個主要用於shell編程,批量創建用戶

3 修改用戶信息 usermod:

usermod 選項 用戶名

-u UID 修改用戶的UID

-G 組名 修改用戶的附加組

-L 鎖定用戶

-U 解鎖用戶

這個命令格式跟useradd類似,只不過useradd是新增,這個是修改已有

4 修改用戶密碼狀態 chage

chage 選項 用戶名

-d日期 修改密碼最後一次更改日期(shadow第3個字段)

-m天數 兩次密碼修改間隔(4字段)

-M 天數 密碼有效期(5字段)

-W天數 密碼過期前有效期(6字段)

-I 天數 密碼過期後寬限天數(7字段)

-E 日期 賬號失效日期(8字段)

其實這樣也都可以手工修改shadow文件

chage -d 0 fq

把fq的密碼最後一次更改日期歸0 ,這樣用戶一登錄就要修改密碼

5 刪除用戶userdel

userdel 選項 用戶名

-r 刪除用戶的同時刪除用戶家目錄

當然除了這種方式外,我們也可以手工刪除用戶,就是上面說的涉及到用戶的各個文件去刪除即可

6 查看用戶id

id 用戶名

這裡寫圖片描述

比如我執行usermod -G root fuqiang,然後再用id查看

這裡寫圖片描述

我們看到fuqiang用戶多了一個附加組

7 切換用戶身份su

我們一般用su 直接加用戶名進行切換,但是這樣用戶的環境變量會有問題,具體可用env命令查看,會發現有些環境並沒有切換過去

加選項 - 會連同用戶的環境變量一起切換

這裡寫圖片描述

-c 僅執行一次命令,而不切換用戶

比如:su -root -c “useradd user3”

六 用戶組管理命令

1 添加用戶組groupadd 選項 組名

-g GID 指定組ID

我們先添加一個fuqianggroup的組 groupadd -g 600 fuqianggroup

然後到/etc/group下看看

這裡寫圖片描述

可以看到這個組已經添加成功了

2 修改用戶組groupmod 選項 組名

-g GID 指定組的GID

-n 修改組名

比如我想把剛剛創建的fuqianggroup組修改為fqgroup

這裡寫圖片描述

再來看下/etc/group

這裡寫圖片描述

發現修改成功了

3 刪除用戶組groupdel 組名

注意:這樣只能刪除附加組,如果想刪除初始組,必須把初始組的用戶也刪掉才行。

4 把用戶填加到組裡或者從組中刪除 gpasswd 選項 組名

-a 用戶名:把用戶加入組

-d 用戶名:把用戶從組中刪除

我想把fuqiang這個用戶添加到剛才的fqgroup中

gpasswd -a fuqiang fqgroup

這裡寫圖片描述

再把它刪除

gpasswd -d fuqiang fqgroup

這裡寫圖片描述

好了,Linux用戶和用戶組管理就總結到這裡,如有問題,歡迎指正,謝謝。

Copyright © Linux教程網 All Rights Reserved