1. 程式人生 > >20.Linux 賬號管理與 ACL 許可權設定

20.Linux 賬號管理與 ACL 許可權設定

這裡寫圖片描述
這裡寫圖片描述

Linux 登入大致過程:

 1. 先尋找 /etc/passwd 裡面是否有你輸入的賬號,如果沒有跳出;如果有的話將該賬號對應的UID 
 和 GID(在 /etc/group 中)讀出來,另外,該賬號的主資料夾與 shell 設定也一併讀出。
 2. 再來就是核對密碼了。這時 Linux 會進入 /etc/shadow 裡面找出對應的賬號和 UID ,
 然後核對一下你剛剛輸入的密碼是否相符
 3. 如果一切 OK,就進入 shell 控管階段了

/etc/passwd 檔案結構
這裡寫圖片描述

每一行代表一個賬號,裡面有很多賬號本來就是系統正常執行所必須的系統賬號,
如 bin,daemon,adm,nobody等。不能隨便刪除。

一共 7
個欄位: 1.賬號名稱 : 就是賬號,用來對應 UID 的 。 root 的 UID 對應0(第3欄位) 2.密碼 x 3.UID : 使用者標示 id 範圍 特性 0(系統管理員) 當 UID 為0是系統賬號,所以系統管理員不止root 1~499(系統賬號) 保留給系統使用的 ID,其實除了0以外,其他UID許可權與特性並沒有不一樣。 由於系統上啟動的服務希望以最小的許可權去執行,因此不希望使用root身份執行這些服務, 所以我們就要提供這些執行中程式的所有者賬號才行。這些系統賬號通常是不可登入的,所有才 有 /sbin/nologin 這個特殊的 shell
存在 1~99 : 由 distributions 自行建立的系統賬號 100~499 : 若使用者有系統賬號需求,可使用的賬號 UID 500~65535(可登陸賬號) : 一般給使用者用的。 4.GID : 這個與 /etc/group 有關。 5.使用者資訊說明列 6.主資料夾 : 如果想要該賬號的主資料夾移動到其他硬碟去,修改這個。 7. Shell : 使用者登入系統後會取得一個 shell 來與系統核心通訊。預設的shell是否為bash , 就是這個欄位指定。/sbin/nologin 這個shell可以讓賬號無法取得 shell 環境的登入操作。

/etc/shadown 檔案結構
這裡寫圖片描述

一共9個欄位:
1.賬號名稱:必須與 /etc/passwd 相同
2.密碼 : 編碼後的密碼
3.最近更改密碼日期:從1970-01-01開始
4.密碼不可被更動的天數:最近一次修改後需要經過幾天才能修改。0表示都可以修改。
5.密碼需要重新修改的天數:指定在最近一次更改密碼後在多少天內需要再次更改密碼
6.密碼需要更改期限前的警告天數(與第5個欄位比)
7.密碼過期後的賬號寬限時間(密碼失效日)
8.密碼失效日期
9.保留

/etc/group 檔案結構
這裡寫圖片描述

1.使用者組名稱
2.使用者組密碼 : 通常不需要
3. GID :/etc/passwd 第四個欄位對應的 GID
4.此使用者組支援的賬號名稱:某個賬號想加入此使用者組,將該賬號填入這個欄位即可。

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

每個使用者在他的 /etc/passwd 第四列中有 GID ,這個是他的初始使用者組。
即使用者登入時,就立即擁有這個組的許可權。

groups : 有效與支援使用者組檢視
這裡寫圖片描述

newgrp : 有效使用者組的切換

/etc/gshadow
這裡寫圖片描述
這裡寫圖片描述

1.使用者組名 
2.密碼列 : 如果是 ! ,表示不具有使用者組管理員
3.使用者組管理員賬號
4.該使用者組的所屬賬號

賬號管理

新增賬號:
useradd [-u UID] [-g 初始使用者組] [-G 次要使用者組] [-mM] [-c 說明欄] [-d 主資料夾絕對路徑] [-s  shell] 使用者賬號名

這裡寫圖片描述

useradd 參考檔案:
這裡寫圖片描述

由 /etc/default/useradd 調用出來
這裡寫圖片描述

1.GROUP=100 : 新建賬號的初始使用者組使用GID為100
  私有使用者組機制:一個賬號一個使用者組
  共有使用者組機制:公用一個使用者組

2.HOME=/home : 使用者主資料夾的基準目錄
3.INACTIVE=-1 : 密碼過期後是否會失效的設定值,0表示立即失效,-1表示不會失效
4.EXPIRE=賬號失效日期 
5.SHELL=/bin/bash : 預設使用的 shell 程式名字
6.SKEL=/etc/skel : 使用者主資料夾參考基準目錄
7.CREATE_MAIL_SPOOL=yes : 建立使用者的 mailbox

useradd 這個程式在建立使用者時,至少會參考:
/etc/default/useradd
/etc/login.defs  
/etc/skel/*

passwd
這裡寫圖片描述

建立使用者後,沒密碼,/etc/passwd 是 ! 的。

passwd [--stdin]  // 所有人均可以修改自己的密碼
passwd [-l][-u][--stdin][-S][-n][-x][-w][-i] 賬號 //root 功能

這裡寫圖片描述

usermod :修改賬號

usermod [-cdegGlsuLU] username

userdel : 刪除賬號

userdel -r username
-r : 連同使用者的主資料夾也一起刪除

使用者功能

finger [-s] username 

chfn [-foph] [賬號名稱]  //change finger

chsh [ls]  // change shell

id [username]

使用者組

groupadd [-g gid] [-r] 使用者組名

groupmod [-g gid] [-n group_name] 使用者組名

groupdel [groupname]
gpasswd : 使用者管理組員功能
gpasswd groupname