2021-05-12 14:32:11
Linux基礎教學:Linux的使用者和組管理
Linux是個多使用者多工的分時作業系統,越是對伺服器安全性要求越高的伺服器,越需要建立合理的使用者許可權等級制度和伺服器操作規範。
在Linux中主要是通過組態檔來檢視和修改使用者資訊
關於使用者的組態檔有四個。
/etc/passwd
/etc/shadow
/ect/group
/etc/gshadow
/etc/passwd
記錄了這個使用者的一些基本屬性
第1欄位:使用者名稱稱
第2欄位:密碼標識(表示有密碼,會去/etc/shadow下呼叫)
第3欄位:UID
0 超級使用者
1-499 系統使用者(偽使用者)
500-65535普通使用者
第4欄位:GID(使用者初始組ID)
第5欄位:使用者說明
第6欄位:家目錄
普通使用者:/home/使用者名稱
超級使用者:/root/
第7欄位:登入之後的shell
shell就是linux的命令直譯器
在/etc/passwd當中,除了標準shell是/bn/bash之外,還可以寫如/sbin/nologin(無法登入)
對於組,有初始組和附加組的概念。
初始組:就是指使用者一建立就立刻擁有這個使用者組的相關許可權,每個使用者的初始組只能有一個,一般就是和這個使用者的使用者名稱相同的組名作為這個使用者的初始組。
每個使用者都必須擁有一個初始組,每個使用者只能擁有一個初始組
附加組:指使用者可以加入多個其他的使用者組,並擁有這些組的許可權,附加組可以有多個。
影子檔案/etc/shadow
存放使用者密碼資訊,只有系統管理員才有權利進行檢視和修改的檔案,許可權為000
前面說的passwd裡只有密碼標誌x,shadow存放著真正的密碼
第一個欄位:使用者名稱
第二個欄位:經過加密後的密碼(如果密碼位是!!或*代表沒有密碼,不能登入)
第三個欄位:密碼最後一次修改日期(使用1970年1月1日作為標準時間,每過一天時間戳加1)
第四個欄位:兩次密碼的修改間隔時間(和第三個欄位相比,也就是多少時間間隔後才能修改密碼)
第五個欄位:密碼有效期(和第3欄位相比)
第六個欄位:密碼修改到期錢的警告天數(和第五欄位相比)
第七個欄位:密碼過期後的寬限天數(和第5個欄位相比,0代表密碼過期後立即失效,-1代表密碼永不失效)
第八個欄位:帳號失效時間(不管有效期是否到,要用時間戳表示)
第九個欄位:保留
/etc/group
存放使用者組的設定資訊
每新增一個使用者,就會生成和使用者名稱一樣的組作為使用者名稱的初始組
第一欄位:組名
第二欄位:組密碼 (root給組選個管理員,設定完密碼,管理員知道設定的密碼,就可以把其他使用者拉到組或者從組中刪除,會降低系統的安全性,通常不使用)
第三個欄位:GID
第四欄位:組中附加使用者(linux無法直接檢視初始組,先進/etc/passwd檢視初始組id,再進/etc/gourp檢視組id是哪個組)
需要注意的是,linux不是用使用者名稱和組名來區別的,用的是UID和GID,當然,還有之前說的PID,理論上來說都是唯一的。
gshadow
使用者組管理密碼
第一欄位:組名,是使用者組的名稱,由字母或數位構成。
第二欄位:使用者組密碼,這個段可以是空的或!,如果是空的或有!,表示沒有密碼
第三欄位:組管理者,這個欄位也可為空,如果有多個使用者組管理者,用,號分割
第四欄位:組內使用者列表,如果有多個成員,用,號分割
使用者的家目錄
普通使用者:/home/使用者名稱,所有者和所屬組都是此使用者,許可權是700
超級使用者:/root/,所有者和所屬組都是root使用者,許可權是550
假如通過修改/etc/passwd,將某使用者的uid更改為0,他的許可權更改了,但是家目錄的位置卻沒有更改。
命令:
useradd 新增使用者
語法:useradd 【選項】使用者名稱
-u UID 手工指定使用者的UID號
-d 家目錄 手工指定使用者的家目錄
-c 使用者說明 手工指定使用者的說明
-g 組名 手工指定使用者的初始組
-G 組名 指定使用者的附加組(可以多個附加組,逗號分割就行了)
-s shell 手工指定使用者的登入shell,預設是/bin/bash
其實就是修改了剛剛所說的幾個組態檔,我們也可以手動寫入這幾個檔案來建立使用者
一般新建使用者使用預設值就可以了,使用者的預設值檔案
GROUP=100 使用者預設組(linux系統中,有一種共有模式和私有模式,在公有模式中是這樣的,在現在的linux中,預設的是都是私有模式,在私有模式中,使用者新增是建立同名的組)
HOME=/home 使用者家目錄
INACTIVE=-1 密碼過期寬限天數 (shadow檔案的第7欄位相對應)
EXPIRE= 密碼失效時間 (shadow檔案的第8欄位相對應)
SHELL=/bin/hsah 預設的shell
SKEL=/etc/skel 模版目錄
CREATE_MAIL_SPOOL=YES 是否建立郵箱
還有另外一個預設組態檔,/etc/login.defs ,把注釋行去掉,就剩這些了、
PASS_MAX_DAYS 99999 密碼有效期 (shadow檔案的第5個欄位)
PASS_MIN_DAYS 0 密碼修改間隔 (shadow檔案的第4個欄位)
PASS_MIN_LEN 密碼最小5位(現在用的是PAM原則)
PASS_WARN_AGE 7 密碼到期警告 (shadow檔案的第6個欄位)
UID_MIN 500 最小uid值
UID_MAX 60000 最大UID範圍
ENCRYPT_METHOD SHA512 加密模式
passwd【選項】使用者名稱
-S 查詢使用者密碼的密碼狀態,僅root使用者可用
-l 暫時鎖定使用者。僅root可用
-u 解鎖使用者。僅root使用者可用
-stdin 可以通過管道符輸出的資料作為使用者的密碼
用-S來檢視下密碼狀態,內容是和/etc/shadow相對應的
鎖定和解鎖使用者
實際上可以看到是shadow中的user1使用者加了!當然,我們可以手工新增。
usermod 修改使用者資訊
前面的useradd所用的-u,g,G,c,L,U等對usermod來說,基本通用
chage 修改使用者密碼狀態
chage【選項】使用者名稱
-l 列出使用者的詳細密碼狀態
-d 修改密碼最後一次更改日期
-m 天數 兩次密碼修改間隔
-M 天數 密碼過期前警告天數
-I 天數 密碼過期後寬限天數
-E日期 帳號失效時間
我學習的時候在想,我還要記這麼多引數?就算用--help去檢視也得多少時間,所以如果我用到這,我就直接用vim編輯組態檔了。
shage -d 0 user1 估計這個命令的最大作用也就是這了,要求使用者一登入就必須設定密碼。
userdel 刪除使用者
userdel【選項】使用者名稱
-r 刪除使用者的同時刪除使用者家目錄
id 查詢使用者的uid
id 使用者名稱
su 切換使用者身份
su 【選項】使用者名稱
- 選項只用-,代表連使用者的環境變數一起切換
-c 命令:僅執行一次命令,而不切換使用者身份
如果在切換時沒有加-,會有各種各樣的問題
groupadd 新增使用者組
groupadd 【選項】組名
-g GID 指定組ID
groupmod【選項】組名
-g GID 修改組ID
-n新組名 修改組名
groupdel 組名 刪除使用者組
如果組中有初始使用者存在,無法刪除,附加使用者,不影響組的刪除。
gpasswd【選項】組名 把使用者新增入組或從組中刪除
-a 使用者名稱 把使用者加入組
-d使用者名稱 把使用者從組中刪除
本文永久更新連結地址:http://www.linuxidc.com/Linux/2016-09/135077.htm
相關文章