linux帳號與身份管理

來源:互聯網
上載者:User

Linux帳號與身份管理

 

1.      linux帳號與使用者組

使用者識別碼:UID與GID

雖然我們平時在登入linux主機的時候,會輸入帳號,但是linux並不會直接認識我們的帳號,它認識的僅僅是ID。ID是一串數字,儲存在/etc/passwd中。而帳號僅僅是為了方便我們記憶而已。

Linux一共有兩種ID,即UID和GID,UID是使用者身份的標識,GID是群組的標識,它存在/etc/shadow中。

 

2.      使用者帳號

當我們登入主機時,會出現一個login介面提示我們登入,這時輸入我們的帳號和密碼後,linux會做什麼呢?

1)     先尋找/etc/passwd看是否有這個帳號,如果沒有則退出,反之讀出該使用者的UID,GID,shell以及家目錄等資訊。

2)     Linux進入/etc/shadow中尋找對應的帳號與UID,判斷使用者輸入的密碼與裡面的密碼是否一致。

3)     如果一切相符,則進入shell的掌控階段。

 

由上面的流程可以得知,與帳號有關的最重要的兩個檔案就是/etc/passwd以及/etc/shadow,一個管帳號,一個管密碼。

 

/etc/passwd檔案結構

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

   huli:x:500:500:huli:/home/huli:/bin/bash

   其中每一行代表一個欄位,有一些帳號是系統正常運行所必須得,我們稱它們為系統帳號,每一行共有7個欄位,使用’:’分隔開

1)使用者名稱稱

2)密碼,一般是一個’x’,由於安全起見,現在的版本中密碼都移到了/etc/shadow中。

3)UID

4)GID

5)賬戶描述資訊

6)使用者家目錄

7)該使用者預設的shell

注意:當UID是0時,表示這個賬戶是系統管理員,因此,要使一個帳號變成系統管理員,可以將它的UID設成0。

 

/etc/shadow檔案結構

root:$1$3FuRYPZx$CxcC2ghSgPjp7MzbWAal:15251:0:99999:7:::

同樣,shadow的每一行也代表一個賬戶,也是以’:’分隔,但是它有9個欄位。

1)使用者名稱稱,與passwd對應

2)密碼:這是真正的密碼,經過加密,如果密碼欄的第一個字元是’*’或者是’!’,表示這個帳號並不會用來登入。

3)最近更改密碼的日期,這是距離1970年1月1日的天數。

4)密碼不可更改的天數:這個欄位表示這個帳號的密碼需要經過幾天后才能更改,如果是0的話,表示密碼隨時可以更改。

5)密碼需要重新更改的天數:如果為99999的話,表示密碼不需要更改

6)密碼更改期限前的警告期限

7)密碼到期的寬限時間:如果密碼失效了,還可以用這個密碼在這個欄位設定的天數內進行登入,如果在這個天數後還沒有更改密碼,那麼帳號將無法再進行登入。

8)帳號失效日期,這個欄位是自1970年以來的總日數。

9)保留

 

有效使用者組與初始使用者組

初始使用者組:新增加一個賬戶時的預設使用者組

有效使用者組:建立立一個檔案時,檔案所屬的使用者組

可以使用groups來查看目前使用者所屬的使用者組,在輸出地訊息中,第一個輸出的使用者組就為有效使用者組。我們可以使用newgrp來改變我們的有效使用者組。

 

帳號管理:useradd、相關設定檔案、passwd、usermod、userdel

Useradd username

參數:

-u : 後面接UID,是一組數字。直接給這個帳號制定一個特定的UID

-g : 後面接的使用者組名稱就是上面提到的初始使用者組。

-G: 後面接的使用者組名稱是這個帳號還可以支援的使用者組

-M: 強制,不要建立使用者家目錄。

-m : 強制,要建立使用者家目錄。

-c : 這個是/etc/passwd第5欄的說明內容。

-d : 指定某個目錄稱為家目錄,而不要使用預設值。

-r : 建立一個系統帳號,這個帳號的UID會有限制(/etc/login.defs)

-s : 使用的預設shell

這個命令可能會更改的檔案有:

/etc/passwd

/etc/shadow

/etc/group

/etc/gshadow

/home/username

 

這個命令參考的檔案有:

/etc/default/useradd

/etc/login.defs

/etc/skel/*

 

   passwd(更改密碼)

   passwd [-lunxwS] username

   參數:

   -l : 將username帳號的密碼鎖住(lock),在/etc/shadow內的密碼欄修改。

   -u: 將-l的lock解開

   -n: 後面接天數,/etc/shadow內的第四欄

   -x: 後面接天數,/etc/shadow內的第五欄

   -w: 後面接天數,/etc/shadow內的第六欄

   -S: 顯示當前這個username的相關資訊

   注意:所有的使用者均可使用passwd來修改自己的密碼,但只有root可以使用該命令修改別人的密碼

 

   usermod(用於修改帳號相關的資訊)

   usermod [-cdegGlsuLU] username

   參數:

   -c  : 後面接帳號的說明,/etc/passwd的第5欄

   -d  : 後面接帳號的家目錄,/etc/passwd的第6欄

   -e  : 後面接日期,格式是YYYY-MM-DD,/etc/shadow的第8欄

   -g  : 後面接group name,/etc/passwd的第4欄

   -G  : 修改該使用者所支援的使用者組,修改的是/etc/group

   -l   :後面接帳號名稱,/etc/passwd的第一欄

   -s   :後面接shell的實際檔案,如果/bin/bash

   -u   :後面接UID,/etc/passwd第3欄

   -L   :暫時凍結使用者,即修改/etc/shadow的密碼欄

   -U   :將/etc/shadow密碼欄的!去掉,解凍。

 

   Userdel(刪除賬戶)

   Userdel [-r] username

   參數:

   -r : 連同使用者的家目錄一起刪除

 

   切換使用者身份(su,sudo)

   su可以切換到root身份,不過需要root密碼。如果直接使用su,那麼MAIL/PATH/USER等環境變數還是原來登陸者的(注意HOME變數會切換),如果希望在切換身份時環境變數也跟著變,那麼建議使用su -。

   su [-lmc] [username]

   參數:

-          : 如果執行su –時,表示該使用者想要變換身份成為root,且使用root的環境參數檔案,如/root/.bash_profile等

-l   : 後面可以接使用者,例如su –l huli,這個-l的好處是,可使用變換身份者

的所有相關環境設定檔案。

   -m  :-m與-p是一樣的,表示“使用當前環境設定,而不重新讀取新使用者的設定檔案”

   -c   :僅進行一次命令,-c後面接命令。

 

   sudo的一個弊端是普通使用者必須知道管理員的密碼,當系統中有許多使用者時,

   如果每個使用者都知道管理員密碼,便存著者安全隱患。這個時候,可以使用

   sudo,sudo是如何工作呢?

   當使用者執行sudo時,系統會先尋找/etc/sudoers檔案,判斷使用者是否有sudo。

   如果有許可權,便提示使用者輸入自己的密碼來確認。

   若密碼輸入成功,便可執行命令。

   sudo [-u [username|#uid]] command

   參數:

   -u : 後面接使用者帳號名稱,或者是UID。

 

   手動增加使用者

   如果要手動增加使用者,必須清楚得瞭解到所有相關的設定檔案。

   一般,手動增加使用者會涉及到以下幾個檔案的修改:

  /etc/passwd

  /etc/shadow

  /etc/group

  /etc/gshadow

  /home/username

  系統提供了一些工具來保證手動添加使用者的安全性

  peck

  它能夠檢查/etc/passwd帳號設定檔案內的資訊,以及實際的家目錄是否存在

  等資訊,還可以比較/etc/passwd、/etc/shadow的資訊是否一致,另外,如果

  /etc/passwd內德資料欄位錯誤,也會提示修改。

 

  pwconv

  這個命令的目的是將/etc/passwd內的帳號與密碼移到/etc/shadow中。

 

  pwunconv

  這個命令的目的是將/etc/shadow內的密碼欄資料寫回到/etc/passwd中。

 

  grpconv

  這個命令的目的是將/etc/group內的帳號與密碼移動到/etc/gshadow中

  

  chpasswd

  這個命令可以讀入未加密前的密碼,並且經過加密後,將加密後的密碼寫入

  /etc/shadow中。它可以由標準輸入讀入資料,每個資料的格式是:

  “username:password”

  例:echo “skind:user!@#” | chpasswd

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.