1. 程式人生 > 其它 >【Linux學習筆記(二十三)】之使用者資訊檔案,使用者管理命令,組管理命令

【Linux學習筆記(二十三)】之使用者資訊檔案,使用者管理命令,組管理命令

技術標籤:Linux學習筆記linuxshell

本文章由公號【開發小鴿】釋出!歡迎關注!!!


老規矩–妹妹鎮樓:

一. 使用者檔案

(一) /etc/passwd

使用者資訊檔案,儲存著所有使用者資訊,每一行就是一個使用者,包括能夠登入的使用者和無法登入的偽使用者。

root:x:0:0:root:/root:/bin/bash

第一列: 使用者名稱

第二列: 密碼位,表示該使用者有密碼,但是真正的密碼在/etc/shadow檔案中,只有root使用者能夠檢視。

第三列: 使用者ID

0表示root使用者,系統是通過UID來判斷該使用者是否是Root使用者的,1-499表示偽使用者ID,這些偽使用者用來執行系統和服務的,每個服務都是有使用者的,1-99是系統保留自動建立的,100-499是預留給使用者建立系統賬號的。500-60000是普通使用者ID

第四列:組ID,當新增使用者時,如果不指定使用者所屬的組,則會建立和使用者同名的組

第五列:使用者說明

第六列:使用者的家目錄

第七列:登入shell,可登入的使用者都是/bin/bash,偽使用者都是/sbin/nologin,表示不可登入,如果我們將自己的使用者修改為/sbin/nologin,也無法登入了。

(二) /etc/shadow

儲存使用者密碼的檔案,密碼是經過加密的,偽使用者的密碼都是“!!”或者””,表示沒有密碼。我們可在root使用者和普通使用者的密碼前面新增“”或者“”,改變加密值讓密碼暫時失效,使用者無法登入。

第一列: 使用者名稱

第二列: 加密密碼

第三列: 密碼最近更改時間,用天數的時間戳表示,從1970年1月1日開始

第四列: 兩次密碼的修改間隔

第五列: 密碼有效期

第六列: 密碼到期前的警告天數

第七列: 密碼過期後的寬限天數

第八列: 密碼失效天數,到了使用者就失效了

第九列: 無

(三) /etc/group

儲存組的資訊,每一行都是一個組。

root:x:0:root

第一列:組名

第二列:組密碼,組一般只有root使用者有許可權,將組密碼賦予一個使用者後,該使用者可以操作組。

第三列: GID

第四列: 此組中支援的其他使用者,附加組是此組的使用者

初始組: 每個使用者都有一個同名初始組

附加組: 每個使用者可以屬於多個附加組,將使用者加入組就是加入附加組,這裡顯示的就是該組的附加使用者

(四) /etc/gshadow

儲存組密碼的檔案。

(五) 使用者模板目錄

/etc/skel/,這個目錄中有一些隱藏檔案,在建立新的使用者時會新增到新使用者的家目錄下。如果我們要在新使用者建立的家目錄下自動生成一些檔案,可以在模板目錄下建立一些檔案,它會自動新增到新使用者的家目錄下。


(六) 使用者郵箱目錄

在/var/spool/mail目錄下,建立使用者同名的郵箱目錄。

(七) 使用者的家目錄

/home目錄下使用者同名目錄。


二. 使用者管理命令

(一) 新增使用者

useradd命令,格式如下所示:

useradd 選項 使用者名稱

選項:
-u ID: 指定UID,沒有任何必要

-g 組名: 指定初始組,沒有必要,會預設建立

-G 組名: 指定附加組

-c 說明: 新增說明

-d 目錄: 指定家目錄,沒有必要

-s shell: /bin/bash或者 /sbin/nologin

注意,每次我們添加了一個使用者後,就要設定用passwd命令設定該使用者的密碼,不然該使用者是無法登入的。

useradd t1
passwd t1

(二) useradd預設值

使用useradd命令新增使用者時有預設的引數配置,分別在/etc/default/useradd 和/etc/login.defs 兩個檔案中。

1. /etc/default/useradd

該檔案中的引數如下:

HOME=/home 表示使用者的家目錄位置

INACTIVE=-1 表示密碼過期後的寬限天數

EXPIRE= 表示密碼的失效時間,用時間戳表示

SHELL=/bin/bash 使用者的預設shell,表示新建立的使用者預設都具有shell賦予的許可權

SKEL=/etc/skel 定義使用者的模板目錄位置

CREATE_MAIL_SPOOL=yes 預設建立郵箱

2. /etc/login.dfs

MAIL_DIR /var/spool/mail 新使用者的郵箱目錄

PASS_MAX_DAYS 99999 密碼的有效期

PASS_MIN_DAYS 0 兩次密碼的間隔時間

PASS_MIN_LEN 5 密碼最小長度

PASS_WARN_AGE 7 密碼到期前的警告天數

CREATE_HOME yes 是否建立家目錄

UMASK 077 使用者家目錄的預設許可權為700

USERGROUPS_ENAB yes 刪除使用者時,是否刪除使用者初始組

ENCRYPT_METHOD SHA512 密碼加密方式,原先使用MD5


(三) 設定密碼

passwd 命令,普通使用者只能修改自己的密碼,root使用者能夠修改所有人的密碼。

root使用者:

passwd 選項 使用者名稱

-l: 暫時鎖定使用者,即在/etc/shadow中將該使用者的加密密碼添加了!!,使密碼失效而已。

-u: 解鎖使用者

--stdin: 通過管道符輸出的資料作為使用者的密碼,主要在批量新增使用者時使用,無需與系統互動,直接設定密碼,但是這樣的問題是所有使用者的密碼是一樣的,我們可以通過修改shadow檔案的密碼修改日期欄位(第三個欄位)為0,這樣使用者在第一次登陸時就會強制修改密碼了。

echo “123| passwd –stdin user1

普通使用者:

passwd

修改自己的密碼

(四) 修改使用者資訊

usermod命令用於修改已經新增的使用者資訊,選項與useradd差不多,很多都是沒有必要的,最常用的就是-G,修改使用者的附加組,其他的就不介紹了。

(五) 刪除使用者

userdel命令使用者刪除使用者,注意要同時刪除家目錄。

userdel [-r] 使用者名稱

-r: 刪除家目錄

(六) 切換使用者身份

su 命令可以切換成不同的使用者身份,如果不帶“-”選項,環境變數env是不會切換的。

su 選項 使用者名稱

-: 表示連帶使用者的環境變數一起切換

-c 命令: 僅執行一次命令,而不切換身份

exit退出當前使用者


三. 組管理命令

(一) 新增使用者組

groupadd命令,格式如下:

groupadd 選項 組名

-g GID : 指定組ID


(二) 刪除使用者組

groupdel命令,格式如下:

groupdel 組名

注意,要刪除一個組,必須保證該組中沒有初始使用者,才可以刪除,如果組中有附加使用者,可以刪除。

(三) 新增附加組

gpasswd命令之前用於設定組密碼並制定組管理員,不過很少用,現在用於為使用者新增附加組。

gpasswd 選項 組名

-a 使用者名稱: 將使用者加入組
-d 使用者名稱: 將使用者從組中刪除

當然,這個操作useradd也能夠完成,記住一個就行。