用戶和組的四大配置文件簡介

一. 用戶的由來

linux系統擁有的就是資源,最重要的事就是對資源的分配,資源分給誰?在linux上資源的訪問是對用戶
賦予不同的權限實現,也就是說能訪問資源的單位是用戶。那用戶在獲取資源之前要實現證明自己是本用
戶,這個過程稱為認證,他通過密碼和用戶名實現。在用戶登錄時會將用戶輸入的用戶名和密碼進行校驗
,校驗過程就是將輸入的用戶名和密碼與linux系統上記錄的用戶名和密碼進行對比,相同就登錄成功,反
之,就登錄失敗。那系統上記錄用戶和密碼的文件就是我們要重點談論的,分別在/etc/passwd和/etc/shadow。
接下來我們就圍繞這兩個配置文件及其相關的命令談一談。

用戶的分類

linux對用戶通過其獲取資源的能力劃分成二類用戶:

    1.管理員用戶:是linux系統中的神,無所別能,不受權限的限制。
    2.普通用戶:獲取資源受權限限制,他根據用處分為兩類
        a. 系統用戶:linux中每一個進程都有一個發起者,而又一些進程是系統啟動時開啟的服務
        進程。這些系統服務經常的發起者就是這些系統用戶。而這些系統用戶不必登錄到計算機,
        這類用戶就叫做系統用戶。
        b.登錄用戶:lunux是一個多人多工的操作系統,這類用戶可以登錄后根據權限享有資源。

/etc/passwd配置文件簡介

我們通過head 查看前五行內容:

[root@localhost ~]# head -n 5 /etc/passwd 
root:x:0:0: :/root:/bin/bash 
bin:x:1:1:bin:/bin:/sbin/nologin 
daemon:x:2:2:daemon:/sbin:/sbin/nologin 
adm:x:3:4:adm:/var/adm:/sbin/nologin 
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

其中每一行表示一個用戶,每個用戶多分為七個字段用分號隔開。這七個字段從左到右表示的意思分別為:

    1.USERNAME:用戶姓名
    2.PASSWD:用戶密碼,但在此處不顯示,密碼保存在/etc/shadow文件中。早期的密碼是放在此文件中
    由于放在這不安全,將其移到/etc/shadow文件下,文件名沒變是為了兼容老版本
    3.UID:用戶id號,因為計算機更容易識別數字,故每一個用戶都有一個唯一表示ID,且用戶識別并不
    是通過用戶名字而是用戶ID,例如在linux中ID為0的用戶是管理員
    4.GID:用戶主組。
    5.context:注釋信息。
    6.HOME DIRECTORY:用戶家目錄,用戶登錄之后所處的目錄
    7.SHELL:用戶登錄后使用的shell,shell是用戶與linux內核打交道的接口

/etc/passwd配置文件簡介

通過head查看配置文件內容為:

[root@localhost ~]# head -n 5 /etc/shadow 
root:$6$Of1m6zsD$8ZbhnzL1T95JnLNOH8YFC7CMth7DWhUsMl3KP.YR/TygDrcqSKJ6UFVLE/SDJaEIlhj09ZwQgJqQkMTDmZIf60:17097:0:99999:7::: 
bin:*:17097:0:99999:7::: 
daemon:*:17097:0:99999:7::: 
adm:*:17097:0:99999:7::: 
lp:*:17097:0:99999:7:::

每個字段以冒號為分隔符,可以看到每個密碼有九個字段,分別表示的意思為:

    1.login name:用戶名
    2.encrypted password:密碼,以$符分為三個字段從左到右分別為
        a.第一個字段為加密算法,有1-6六個數字分別對應的算法為:MD5,SHA1,SHA224,SHA224,SHA256
        SHA384,SHA512。root用戶中的6就表示sha512。
        b.第二個字段為salt,是8位隨機數,是為了反正密碼相同的不同用戶密碼一樣而生成的隨機數
        c.第三個字段為生成的密文,即密碼。
    3.date of last password change:密碼最后一次修改距離linux元年(1970.01.01)的天數
    4.minimum password age:密碼再次修改最小經過的天數
    5.maximum password age:密碼最大使用天數,過了這個天數就要修改
    6.password warning period:警告時間,密碼到最大使用天數前多少天開始警告,提示用戶密碼快
    到最大使用時間需要修改了
    7.password inactivity period:密碼到了最大使用天數之后,賬號不可活動天數。
    8.account expiration date:用戶過期時間,是1970到過期時間的天數。
    9.reserved field:保留字段。

用戶相關命令簡介

useradd:創建一個新用戶,主要創建的shi/etc/passwd中的信息。

重要參數為:
    -r:創建系統用戶
    -u:指定用戶id
    -g:指定指定用戶屬id
    -G:指定用戶附加組id
    -s:指定用戶登錄shell
    -c:用戶注釋信息
    -d:指定用戶家目錄
    -m:創建用戶家目錄
    -M:不創建用戶家目錄
    -c:注釋用戶信息

chage和passwd:主要修改/etc/shadow中的數據。具體選項可以查看man幫助,值得注意的是passwd可以通
過-l和-u鎖定和解鎖用戶密碼。

usermod:修改制定用戶數據,處理修改/etc/passwd的一些常規信息,還可以是用-L和-U鎖定和解除用戶
密碼,鎖定密碼實際上是在密碼前加一個!號

chfn USERNAME:修改用戶注釋信息。

finger USERNAME:查看用戶信息
userdel:刪除用戶 -r選項表明連同家目錄頁一并刪除。

用戶信息默認配置文件

當我們在創建用戶沒有指定shell,家目錄等信息是,我們發現盡管沒有指定,但依舊有shell,家目錄等。
那么這些默認的屬性來自那呢?這些默認信息都寫在/etc/login.defs和/etc/default/useradd中看看都
定義了一些什么屬性。

/etc/login.defs:

PASS_MAX_DAYS    99999    #密碼最大使用時間

PASS_MIN_DAYS    0          #密碼最小實用時間

PASS_MIN_LEN    5          #密碼最小長度

PASS_WARN_AGE    7           #密碼提前警告時間天數

ENCRYPT_METHOD SHA512   #指定了密碼加密算法

CREATE_HOME    yes          #默認創建家目錄

UID_MIN              500       #用戶id最小值

UID_MAX            60000       #用戶id最大值 

/etc/default/useradd

GROUP=100       #創建用戶使用-N選項是默認的基本組

HOME=/home      #家目錄創建目錄

INACTIVE=-1     #密碼非活動時間

EXPIRE=

SHELL=/bin/bash      #默認shell類型

SKEL=/etc/skel       #拷貝到家目錄下的文件

CREATE_MAIL_SPOOL=yes     #是否創建郵箱

二.組的概念

在上面我們提到過,操作系統最大的作用是管理資源。而為了對某一類用戶進行資源的分配和使用,我們
提出了組的概念。與組相關的兩個配置文件為:/etc/group, /etc/gshadow。

組的分類

它和分類一樣
    1.管理員組
    2.用戶組:
        a.系統組
        b.登錄組
站在用戶的角度分:
    1.用戶的基本組,也稱為主組。
    2.附加組

/etc/group

查看文件格式為:

[root@localhost ~]# head -n 5 /etc/group root:x:0: bin:x:1:bin,daemon daemon:x:2:bin,daemon sys:x:3:bin,adm adm:x:4:adm,daemon

以逗號為分隔符,五個字段分別為:

    1.用戶名
    2.用戶密碼,與/etc/passwd一樣真正的密碼在其他文件中
    3.GID:組ID號
    4.用戶成員列表

/etc/gshadow配置文件

查看配置文件內容為:

[root@localhost ~]# head -n 5 /etc/gshadow
root:::
bin:::bin,daemon
daemon:::bin,daemon
sys:::bin,adm
adm:::adm,daemon

以逗號為分隔符,五個字段分別為:

    1.用戶名
    2.用戶密碼,實際上組一般不設置密碼,設置密碼后用戶使用newgrps命令屬于密碼切換屬組,這是不
    安全的。
    3.組的屬主,屬組可對此組用戶成員進行增刪。
    4.用戶成員列表。

組相關命令簡介

groupadd:添加組

groupmod:修改組信息

groupdel:刪除組

gpasswd:修改組命令
id USERNAME:查看用戶id和組信息

groups USERNAME:查看用戶的基本組和附加組。

groupmems -l -g GROUPNAME:查看組中有哪些成員。

三. 用戶和組的關聯

在創建用戶時如果沒有指定基本組就會創建一個同名的組,這個組中的會有一個成員列表為新創建的用戶。
用戶id名稱的改變,并不會影響相同組的改變,因為兩者之間沒有直接聯系,只是組成員中的列表會隨著
成員用戶名稱的改變而改變。用戶和組沒有關聯,只是名字相同而已

原創文章,作者:lirou,如若轉載,請注明出處:http://www.www58058.com/53694

(0)
liroulirou
上一篇 2016-10-24 09:09
下一篇 2016-10-24 09:09

相關推薦

  • 五大主流數據庫模型

    導讀:無論是關系型數據庫還是非關系型數據庫,都是某種數據模型的實現。本文將為大家簡要介紹5種常見的數據模型,讓我們來追本溯源,窺探現在流行的數據庫解決方案背后的神秘世界。 什么是數據模型? 訪問數據庫中的數據取決于數據庫實現的數據模型。數據模型會影響客戶端通過API對數據的操作。不同的數據模型可能會提供或多或少的功能。一般而言,數據模型不會直接提供過多的功能…

    Linux干貨 2015-04-04
  • HAProxy七種調度方法的簡單示意圖

    看了三個月,中間因出差和其他事沒有看估計也有十幾天,剛把35天的視頻看完。很多內容都記不住,待第一次看完后再回頭看吧。 現在想,對內容進行簡單的畫圖,把基本的體現出來,對記憶和回顧應該有幫助。

    Linux干貨 2016-07-26
  • btr文件系統與網絡基礎

    btrfs文件系統技術預覽版Btrfs (B-tree, Butter FS, Better FS), GPL, Oracle, 2007, CoW核心特性:多物理卷支持:btrfs可由多個底層物理卷組成;支持RAID,以及聯機“添加”、“移除”,“修改”寫時復制更新機制(CoW):復制、更新及替換指針,而非“就地”更新數據及元數據校驗碼:checksum子…

    Linux干貨 2016-09-02
  • sed命令用法詳解

    1.sed運行原理         sed(stream editor)是一個行處理器。處理時,把當前處理的行放到“模式空間中”,處理完畢后,把該行輸出到屏幕,接著處理下一行;這樣不斷重復,直到末行;此時文件本身內容并沒有改變 2.sed用途    …

    Linux干貨 2016-08-15
  • dstat,htop,top,ps命令 (Blog 8)

      Linux哲學思想之一:一切皆文件:內核將其參數全部映射為文件;這些文件保存在/proc, /sys目錄中;/proc目錄:保存內核及進程狀態信息,是內核參數的映射; 內核參數:可調參數:調整運行特性;/proc/sys不可調參數:輸出內核統計信息及狀態信息; 進程狀態:/proc/# 與進程號同名的目錄,目錄下存放許多當前進程相關信息; 進程…

    Linux干貨 2017-11-27
  • class15磁盤管理(二) 高級磁盤管理(一)

    掛載點和/etc/fstab 配置文件系統體系 被mount、fsck和其它程序使用 系統重啟時保留文件系統體系 可以在設備欄使用文件系統卷標 使用mount -a命令掛載  /etc/fstab 中的所有文件系統 文件掛載配置文件 /etc/fstab每行定義一個要掛載的文件系統;   &nbsp…

    Linux干貨 2016-09-05
欧美性久久久久