首頁 > 軟體

Linux基礎教學:Linux的使用者和組管理

2020-06-16 17:33:47

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裡只有密碼標誌xshadow存放著真正的密碼

第一個欄位:使用者名稱

第二個欄位:經過加密後的密碼(如果密碼位是!!或*代表沒有密碼,不能登入)

第三個欄位:密碼最後一次修改日期(使用197011日作為標準時間,每過一天時間戳加1

第四個欄位:兩次密碼的修改間隔時間(和第三個欄位相比,也就是多少時間間隔後才能修改密碼)

第五個欄位:密碼有效期(和第3欄位相比)

第六個欄位:密碼修改到期錢的警告天數(和第五欄位相比)

第七個欄位:密碼過期後的寬限天數(和第5個欄位相比,0代表密碼過期後立即失效,-1代表密碼永不失效)

第八個欄位:帳號失效時間(不管有效期是否到,要用時間戳表示)

第九個欄位:保留

/etc/group  

存放使用者組的設定資訊

每新增一個使用者,就會生成和使用者名稱一樣的組作為使用者名稱的初始組

第一欄位:組名

第二欄位:組密碼 root給組選個管理員,設定完密碼,管理員知道設定的密碼,就可以把其他使用者拉到組或者從組中刪除,會降低系統的安全性,通常不使用)

第三個欄位:GID

第四欄位:組中附加使用者(linux無法直接檢視初始組,先進/etc/passwd檢視初始組id,再進/etc/gourp檢視組id是哪個組)

需要注意的是,linux不是用使用者名稱和組名來區別的,用的是UIDGID,當然,還有之前說的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所用的-ugGcLU等對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


IT145.com E-mail:sddin#qq.com