LINUX 學習筆記 帳號與群組的管理,linux學習筆記
LINUX 帳號與群組的管理
UID:UserID 儲存檔案:/etc/passwd
GID:GroupID 儲存檔案:/etc/group
/etc/passwd 檔案結構
一行代表一個帳號,裡面還有系統帳號,不能亂動
例如:
root:x:0:0:root:/root:/bin/bash
總共7部分,用:分割
1. 帳號名稱:就是帳號,與UID對應
2. 密碼:加密了 變成XXX 放到/etc/shadow檔案中了
3. UID: 這個就是使用者標識碼
4. GID:這個就是組ID /etc/group
5. 使用者資訊說明:就是個介紹
6. 主資料夾:這是使用者的主資料夾
7. Shell:登入之後的Shell 如果設定為:
/sbin/nologin 就無法取得shell
/etc/shadow 檔案結構
例如:
root:$6$CrPIw79nrmdxd4wo$MjJ5e9xuxJ49BjwxkWKKhZk1QZse03TVr8bJOWTHnq2A5x98tFDFxhtsMhMk4X/P4urrZWb4tb3Xv3yvkMqCK.:17345:0:99999:7:::
一共9個欄位,用:分割
1. 帳號名稱:與/etc/passwd對應
2. 密碼:真正的密碼資料,經過加密的,反正 人看不懂
3. 最近改動密碼的日期 以1970.1.1開始一天加一
4. 密碼不可被更動的天數
5. 密碼需要重新變更的天數
6. 密碼需要變更期限前的警告天數
7. 密碼到期後的帳號寬限時間
8. 帳號失效日期:起始日期為1970.1.1
計算公式
9. 保留欄位
$(($(date--date=”2015/05/04” +%s)/86400+1))
/etc/group 檔案結構
與GID對應
root:x:0:lixue
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
總共四部分 用:分割
1. 群組名稱 與GID 對應
2. 群組密碼 通常不需要設定
3. GID 群組ID
4. 該群組 名下的 帳號
每個帳號 可以 屬於多個群組
初始群組 /etc/passwd 的群組
有效群組 groups命令
[lixue@localhost ~]$ groups
lixue root
第一個就是有效群組
touch 一個檔案試試
-rw-rw-r--. 1 lixue lixue 0 7月 30 17:29 test.txt
通常有效群組的作用是在建立檔案
有效群組的切換
newgrp 命令
可以切換群組 ,條件是 必須是你已經有支援的群組
而且 是以新的shell啟動並執行,如果要回到之前的shell,exit命令
/etc/gshadow
使用:分割 為4部分
root:::lixue
bin:::bin,daemon
daemon:::bin,daemon
sys:::bin,adm
1. 群組名稱
2. 密碼欄 如果!或空 表示 不具有群組管理員
3. 群組管理員的帳號
4. 該群組名下的 使用者
帳號管理
新增與移除使用者
Useradd,usermod,userdel,passwd
Useradd
–u UID
–g 初始群組
-G 次要群組
-M 強制不要建立使用者主資料夾
-m 強制要建立使用者主資料夾
-c 說明欄 一些介紹
-d 指定某個目錄為主資料夾 ,不用預設的,必須為絕對路徑
-r 建立一個系統帳號,這個帳號的UID會有限制
-s 後面接一個shell 若沒有指定,預設為/bin/bash
-e 帳號失效日期,格式為:“YYYY-MM-DD”
-f 0為立刻失效 -1 為永遠不會失效
預設 主資料夾的許可權為 700
系統會預設幫我們處理幾個項目:
1. 在/etc/passwd 裡面建立一行與帳號相關的資料,包括建立UID/GID/主資料夾等
2. 在/etc/shadow裡面將此帳號的密碼相關參數填入,但是尚未有密碼
3. 在/etc/group裡面加入一個與帳號名稱一模一樣的群組名稱
4. 在/home 下面建立一個與帳號同名的目錄作為使用者主資料夾,且許可權為700
還需要用passwd 給使用者佈建密碼
系統帳號 –r 不會建立使用者目錄
Useradd –D 調出 預設資訊的參考資訊
位置在/etc/default/useradd
GROUP=100
HOME=/home 基準目錄
INACTIVE=-1 密碼到期後是否會失效的設定值,0 代表密碼到期立刻失效,-1代表密碼永遠不會失效
EXPIRE= 帳號失效日期
SHELL=/bin/bash 預設使用的shell程式檔案名稱
SKEL=/etc/skel 使用者主資料夾參考基準目錄 主目錄的架構
CREATE_MAIL_SPOOL=yes 建立使用者的mailbox
/var/spool/mail/
但是實際上卻是組名和使用者名稱一致
兩種機制
私人群組機制
忽略GROUP=100
只有使用者自己能進入自己的主資料夾
700許可權的原因
公用群組機制
使用GROUP=100 這個設定值作為建立帳號群組,因此每個帳號都屬於users,預設主資料夾大家都可以訪問
UID/GID 參考值
/etc/login.defs
passwd 命令
-l lock 會將 /etc/shadow 第二欄 最前面加上! 是密碼失效
-u unlock 意思
-S 列出密碼相關參數,亦即 shadow檔案的大部分資訊
-n 參數為天數,shadow的第4個欄位,多久不可修改密碼天數
-x 參數為天數,shadow的第5個欄位,多久內必須要更改密碼
-w 參數為天數,shadow的第6個欄位,密碼到期前的警告天數
-i 參數為天數,shadow的第7個欄位,密碼失效日期
chage 命令
-l 列出該帳號的詳細密碼參數
-d 後面接日期,修改 shadow 第三欄位,最近一次更改密碼的日期,格式 YYYY-MM-DD
-E 後面接日期,修改shadow 第八欄位,帳號失效日期,格式 YYYY-MM-DD
-I 後面接天數,修改shadow 第七欄位,密碼失效日期
-m 後面接天數,修改shadow 第四欄位,密碼最短保留天數
-M 後面接天數,修改shadow 第五欄位,密碼多久需要進行變更
-W後面接天數,修改shadow第六欄位,密碼到期前警告日期
usermod
-c 帳號說明欄的內容,更改
-d 帳號的主資料夾,即修改 /etc/passwd的第六欄
-e 後面接日期,格式 YYYY-MM-DD 也就是 /etc/shadow 內的第八個欄位資料
-f 後面接天數,為shadow的第七欄位
-g 初始群組 修改/etc/passwd 的第四個欄位
-G 次要群組 修改 /etc/group
-a 新增次要群組 而非 設定
-l 修改帳號名稱
-s 後面接shell 實際檔案 例如:/bin/bash
-u 後面接UID
-L lock改的是/etc/shadow第三欄的資料
-U unlock
Uerdel 刪除使用者的相關資料
帳號密碼相關:/etc/passwd,/etc/shadow
使用者群組相關:/etc/group,/etc/gshadow
使用者個人檔案資料:/home/username,/var/spool/mail/username
Userdel –r username
-r 連同使用者的主資料夾也一起刪除
使用者功能:
Id
uid=501(lixue) gid=501(lixue) 組=501(lixue),0(root)
finger
-s 僅列出使用者的帳號、全名、終端機代號與登入時間
-m 列出與後面接的帳號相同者,而不是利用部分比對
Login: 帳號
Name:全名
Directory:主資料夾
Shell:就是使用的Shell檔案所在
Never logged in:賬戶登入情況
No mail :信箱資料
No Plan: ~user/.plan檔案
Chfn
-f:改全名
-o:改辦公室的房間號碼
-p 改辦公室的電話號碼
-h 家裡的電話號碼
Chsh
-l 列出目前系統上面可用的shell,其實就是/etc/shells的內容
新增與移除群組
Groupadd
-g 接GID
-r 建立系統群組 與/etc/login.defs內的GID_MIN有關
Groupmod
-g 修改GID
-n 修改組名
Groupdel
Gpasswd
-A 將groupname的主控權交由後面的使用者管理
-M 將某些帳號加入這個群組當中
-r 將groupname 的密碼移除
-R 讓groupname的密碼欄失效
-a 將某位使用者加入到groupname 這個群組當中
-d 將某位使用者移除出 groupname 這個群組當中