1. 程式人生 > >Linux系列十一 - 賬戶管理

Linux系列十一 - 賬戶管理

一、使用者賬號
ssh登入系統處理過程

1、查詢賬戶在/etc/passwd 中是否存在,不存在跳出,存在則讀出UID與GID(從/etc/group)
2、讀取/etc/shadow找出對應的賬戶與UID,核對密碼
3、校驗通過,登入成功

/etc/passwd檔案結構

root:x:0:0:root:/root:/bin/bash:分隔,共有7個欄位,含義分別是:
1、賬戶,用於對應UID
2、密碼,早期使用,為了安全統一使用x了,密碼儲存在/etc/shadow
3UID,使用者識別符號
    0:系統管理員
    1~499:系統賬戶
    500-65535:使用者
4GID,/etc/group關聯
5
、使用者資訊說明, 6、主資料夾,預設的使用者主資料夾 7、shell,使用者可取得的shell環境

/etc/shadow檔案結構

root:$1$/30QpE5e$y9N/D0bh6rAACBEz.hqo00:14126:0:99999:7:::
1、賬戶名稱
2、密碼
3、最近更改密碼的日期,從1970-1-1到更改密碼時的天數
4、密碼不可被改動的天數,與欄位3對比。比如設定為5,使用者於2018-07-10修改了密碼,那麼在2018-07-15之前不能再修改密碼
5、密碼需要重新修改的天數,與欄位3對比。即密碼多久過期。比如設定為5,即表示5天后密碼失效
6、密碼需要修改期限前的警告天數,與欄位5對比。當密碼臨近過期時,根據該欄位的設定在過期前多久給使用者提示
7
、密碼過期後的賬戶寬限時間(密碼失效日),與欄位5對比。密碼失效後多久內仍可登入 8、賬戶失效日期,即過了該日期,此賬戶將無法使用 9、保留欄位

/etc/group檔案結構

root:x:0:root
1、使用者組名稱
2、使用者組密碼,密碼已使用/etc/gshadow檔案
3GID,使用者組id
4、使用者組支援的賬戶名稱

/etc/gshadow檔案結構

root:::root
1、組名
2、密碼
3、使用者組管理員的賬戶
4、該使用者組下的賬戶

有效與初始使用者組

初始使用者組:
當用戶登入,即會擁有/etc/passwd下該賬戶對應的GID即使用者組相關許可權(第四個欄位),該GID即是使用者的初始使用者組。
有效使用者組:
當用戶建立一個檔案或目錄時,有效使用者組決定了新檔案所屬使用者組
groups 檢視使用者組,輸出的第一個為有效使用者組
newgrp 切換有效使用者組,命令:newgrp 使用者組名

二、賬號管理
使用者新增與刪除

命令:
useradd [-u UID] [-g 初始使用者組] [-G 次要使用者組] [-c 說明列] [-d 主資料夾絕對路徑] [-s shell] 使用者賬戶名
    -s 後面接shell,未指定時預設使用/bin/bash
當使用命令:useradd 使用者名稱 ,建立使用者時,系統會根據預設值建立使用者資訊。預設值可通過:useradd -D 命令檢視
使用者建立後使用命令:passwd 賬戶名 為新建使用者設定密碼,若想修改當前使用者密碼使用命令:passwd即可
命令:passwd [--stdin] :可使用前一個管道的資料作為密碼輸入
命令:usermod username 修改使用者資訊
命令:userdel username 刪除使用者相關資料
    userdel [-r] username 
        -r :刪除使用者主目錄

使用者功能

finger [-sm] username 檢視使用者資訊
    -s 列出使用者的賬戶、全名、終端代號與登入時間等
    -m 列出與username相同者
chsh [-ls] 
    -l 列出可用的shell 
    -s 設定修改自己的shell
id [username] 
    未輸入username,表示檢視當前使用者id資訊

新增與刪除使用者組

groupadd [-g GID] [-r] 使用者組名
    -g 接系統已有GID,表示直接賦予該GID
    -r 新建系統使用者組
groupmod [-g GID] [-n groupname] 使用者組名
    -g 修改gid為指定資料
    -n 修改使用者組名為指定資料
groupdel [groupname]
    刪除指定使用者組,當某個使用者組為使用者的初始使用者組時無法刪除

四、使用者身份切換
su

su - 可將身份切換為root,但需要密碼
su [-lm] [-c 命令] [username]
    - : 代表使用login-shell的配置檔案讀取方式登入系統,未指定使用者表示切換為root
    -l :login-shell方式,後面加目標使用者名稱
    -m :使用當前的環境配置
    -c :執行一次命令,後接命令
exit 退出su

sudo

sudo切換不需要目標使用者密碼,只有在/etc/sudoers 中的使用者才能執行sudo
sudo [-b] [-u 新使用者賬戶]
    -b : 將後續的命令讓系統自動執行,而不與目前的shell產生影響
    -u : 後接欲切換的使用者賬戶,不加此引數表示切換root

visudo : 修改/etc/sudoers的命令

使用者賬戶   登入者的來源主機    可切換的身份     可執行的命令
root           ALL       =   (ALL)            ALL
該使用者組的使用者
%admin         ALL       =   (ALL)            ALL
%代表後面接的是使用者組,那麼在該使用者組下的使用者就能使用sudo命令