使用者及使用者組管理--技術流ken
本節內容
useradd
userdel
usermod
groupadd
groupdel
使用者管理
為什麼需要有使用者?
1. linux是一個多使用者系統
2. 許可權管理(許可權最小化)
使用者:存在的目錄是為了對系統中的資源做歸屬
密碼:存在的目的是為了對使用者做身份認證
使用者和使用者組
使用者組,在使用者組中可以包含一個或者多個使用者
方便對多個使用者進行授權操作
使用者管理相關檔案
/etc/passwd:使用者基本資訊
/etc/shadow:使用者密碼資訊、過期時間等
/etc/group:使用者組資訊
/etc/gshadow:使用者組密碼
/etc/default/useradd:建立使用者的預設配置資訊
/etc/skel/:使用者家目錄模板
/etc/login.defs:全域性使用者設定資訊
/etc/passwd: 每行是一個使用者,用來記錄使用者的基本資訊,每行的格式
account:password:UID:GID:GECOS:directory:shell
accout:使用者名稱
password:使用者密碼,密碼位置預設是x
UID:使用者身份id,用來唯一的標識一個使用者
GID:使用者組id,用來在系統中唯一的標識一個使用者組(這裡指的是其基本組的組ID)
GECOS:使用者描述資訊,可以空白,也可以隨意寫(useradd -c )
directory:使用者家目錄
shell:使用者所使用的shell型別
/bin/bash-->可以登入系統
/sbin/nologin-->該使用者一定無法登入系統
比如
root : x : 0 : 0 : newuser : /root : /bin/bash
使用者名稱 密 碼 使用者id 使用者所在組的id 描述資訊 家目錄 shell型別
/etc/group
使用者組資訊
linux,使用者一定是屬於一個組的
在linux中,建立使用者的時候,
會自動建立一個組,組名和組id都和所建立的使用者相同
而且,該使用者會自動加入到這個組中
c:x:1007:
組成:groupname:password:GID: [user1, user2.....]
groupname:組名
password:組密碼
GID:組id
[user1, user2.....]:改組中的使用者列表
概念
使用者的基本組(主組):當前使用者具有哪個組的許可權
使用者的附加組:使用者額外屬於的組
zx
主組:gp02
附加組:gp01、gp03
/etc/default/useradd
L inux中的使用者類別
可以登入系統的使用者
管理員使用者:uid為0的使用者
普通使用者:就是可以登入系統,但是沒有管理員許可權的使用者
不能登入系統的使用者:
系統使用者:用來執行一個程式,而不是用來登入系統
各類使用者的id
管理員使用者:0
系統使用者:1-999
普通使用者:1000-6000
系統使用者的特點
1. 因為不需要登入,所以shell型別通常為/sbin/nologin
2. 系統使用者沒有家目錄
3. 系統使用者id通常是小於1000
U seradd 命令
useradd [options] username
options:
-d, --home HOME_DIR:指定使用者家目錄
-c, --comment COMMENT:使用者說明資訊
-e, --expiredate EXPIRE_DATE:指的賬號的過期時間,時間格式 YYYY-MM-DD
-g, --gid GROUP:指的使用者的基本組的組id
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:指的使用者的附加組列表
-u,--uid UID:指的使用者的uid
-m, --create-home:建立使用者的時候自動建立使用者家目錄(預設就已經使用)
-M:不自動建立使用者家目錄
-o, --non-unique:通常和-u一起使用,用來讓兩個用使用相同的uid
-r, --system:建立一個系統使用者
-s, --shell SHELL:在建立使用者的時候,指定使用者的shell型別
(/bin/bash/,/sbin/nlogin)
建立一個系統使用者
# useradd -s /sbin/nologin -M -r t17
passwd 命令
passwd [[options] username]
(如果不指定使用者名稱,那麼就是修改當前使用者的密碼)
options:
--stdin
-l:鎖定使用者
-u:解鎖使用者
-d:刪除使用者密碼
-e:讓使用者密碼過期
echo “ 123“ | passwd --stdin ken
表示給ken使用者設定密碼123 (ken使用者必須存在)
設定密碼的原則
1. 長度要夠
2. 密碼複雜度(數字+字母+特殊符號)
Userdel命令
刪除使用者 userdel
userdel [options] username
options:
-r:在刪除使用者的時候,連同使用者資料一併刪除
建立使用者組 groupadd
groupadd [options] groupname
options:
-g GID:
-o:
刪除使用者組 groupdel
groupdel groupname
Shadow檔案詳解
zxhk: $6$dgnPoZ0s$6xNKEWz : 17729 : 0 : 99999 : 7 : : :
第一段:使用者名稱:
第二段:加密後的密碼
第三段:上次修改密碼舉例元年經過的天數(如果該欄位空,意味著該使用者密碼被禁用)
第四段:密碼最短使用時間(0表示不限制)
第五段:密碼最長有效期(99999表示不限制)(如果第5的值小於第四段,那麼使用者無法修改自己的密碼)
第六段:密碼到期前幾天開始傳送告警,提示密碼即將過去,請立即修改
第七段:非活動期間,密碼到期後的寬限時間(登入系統的時候必須先修改密碼,才能登入)
第八段:密碼過期時間(也是舉例計算機元年經過的天數)(這裡和前面的幾個時間沒有聯絡)
第九段:保留欄位
Usermod 命令
usermod [options] username
options
-g, --gid GROUP: 更 新 使 用 者 新 的 起 始 登 入 群 組 。 群 組 名 須 已 存 在 。
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]: 定 義 使 用 者 為 一 堆 groups 的 成 員 。 每 個 群 組 使 用 ,區 格 開 來
-u, --uid UID: 用 者 ID 值 。必 須 為 唯 一 的 ID 值
-s, --shell SHELL: 指 定 新 登 入 shell 。 如 此 欄 留 白 , 系 統 將 選 用 系 統 預 設 shell 。
-L, --lock: 鎖定使用者的密碼
-U : 解鎖使用者的密碼
-l, --login NEW_LOGIN : 變 更 使 用 者 login 時 的 名 稱 為 login_name 。
-e, --expiredate EXPIRE_DATE:加 上 使 用 者 帳 號 停 止 日 期 。 日 期 格 式 為 MM/DD/YY.
-d, --home HOME_DIR:更 新 使 用 者 新 的 登 入 目 錄 。
-m, --move-home:移動使用者家目錄至新的位置
練習
1. 建立使用者java,uid 1000 基本組是gp001 附加組 gp002 gp003
useradd -u 1000 -g gp001 -G gp002,gp003 java
2. 修改使用者java,
將名稱修改為python,
將uid修改為 2000,
修改主組是cats,
shell型別改為 /sbin/nologin
讓該使用者在10月1號到期
#######################
id命令
作用:用來檢視指定的使用者的資訊(或判斷使用者是否存在)
格式:id [-u|-g|-G] username
選項
-u:僅僅顯示使用者uid
-g:僅僅顯示使用者gid
-G:僅僅顯示使用者全部組id
su命令(switch user)
作用:進行切換使用者
格式:su - 目標使用者
su命令和su -命令最大的本質區別就是:
前者只是切換了root身份,但Shell環境仍然是普通使用者的Shell;而後者連使用者和Shell環境一起切換成root身份了。只有切換了Shell環境才不會出現PATH環境變數錯誤。su切換成
root使用者以後,pwd一下,發現工作目錄仍然是普通使用者的工作目錄;而用su -命令切換以後,工作目錄變成root的工作目錄了。用echo $PATH命令看一下su和su -以後的環境變數有
何不同。以此類推,要從當前使用者切換到其它使用者也一樣,應該使用su -命令