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)最近更改密碼的日期,這是距離2023年1月1日的天數。
4)密碼不可更改的天數:這個字段表示這個賬號的密碼需要經過幾天後才能更改,如果是0的話,表示密碼隨時可以更改。
5)密碼需要重新更改的天數:如果為99999的話,表示密碼不需要更改
6)密碼更改期限前的警告期限
8)賬號失效日期,這個欄位是自2023年以來的總日數。
9)保留
有效使用者組與初始使用者組
初始使用者組:新增加乙個賬戶時的預設使用者組
有效使用者組:新建立乙個檔案時,檔案所屬的使用者組
可以使用groups來檢視當前使用者所屬的使用者組,在輸出地訊息中,第乙個輸出的使用者組就為有效使用者組。我們可以使用newgrp來改變我們的有效使用者組。
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
Linux賬號與身份管理
1.ulimit限制 2.umask特殊許可權限制 3.身份管理 grep user1 etc group etc passwd etc shadow root x 0 0 root root bin bash liudongwei x 1000 1000 liudongwei,home liudo...
Linux 賬號與許可權管理
不同的身份,不同的許可權 uid為 0 代表root 1 999 代表程式使用者 1000 60000 代表普通使用者 組帳號uid和gid 儲存使用者名稱 宿主目錄 登陸shell等基本資訊 帶有 bin bash 表示此賬號可以登陸系統 帶有 sbin nologin 表示此賬號不能登陸系統 儲...
Linux賬號與許可權管理
10.查詢賬戶資訊 二 管理目錄和檔案的屬性 2.檢視檔案 目錄的許可權和歸屬 3.設定檔案和目錄的許可權chmod 4.設定檔案和目錄的歸屬chown 5.設定目錄和檔案的預設許可權umask linux基於使用者身份對資源訪問進行控制 使用者賬號 組賬號uid與gid uid 使用者標識號 gi...