Linux的用戶,組的管理其實在平常的運維工作是再熟悉不過的事情了,常用命令和功能基本是爛熟於心,但有時候用到一些不經常使用的命令時,就需要到處google。所以還是有必要對這部分的知識進行一個總結。
1.用戶類別
linux的用戶分爲管理員和普通用戶兩大類。而普通用戶又分爲系統用戶(通常UID是小於500的),和可登陸的普通(通常UID大於500)。系統用戶是比較特殊的用戶,它不用於登陸,而只是負責在用戶登陸之前就執行的一些進程,比如ftp,bin,daemon等等。
2.用戶管理
用戶的管理也是分爲兩大類:
用戶管理,主要操作如下:
創建用戶,修改用戶屬性,刪除用戶;創建組,修改組屬性,刪除組
權限管理,主要操作如下:
修改文件屬主,改屬組,改文件權限
3.用戶,組相關的文件
/etc/passwd:用戶的屬性信息;
/etc/shadow:影子口令
/etc/group:組屬性信息
/etc/gshadow:組的密碼
4.添加,刪除用戶
添加用戶:
useradd,adduser
#useradd USERNAME
用戶屬性:
/etc/passwd:用戶名:密碼佔位:UID:GID:註釋信息:家目錄:默認shell
默認法則:
UID:已有最大UID+1
GID:/etc/group中已有最大的GID+1
註釋信息爲空
家目錄:/home/USERNAME
shell:/bin/bash
定製用戶屬性
-u UID,有效範圍0-65535
-g GID,有效範圍已有的GID,必須事先存在這個GID
-G GID,指定用戶的附加組,可以有多個,逗號分隔
-c "COMMENT" 註釋信息,需要加引號
-d /path/to/somewhere 指定家目錄位置
-s 指定shell
-r 創建系統用戶
-M 不爲用戶創建家目錄
-m 強行爲用戶創建家目錄
查看用戶屬性:
id: id root 查看用戶全部屬性
-u 查看UID
-g 查看GID
finger USERNAME 同樣是查看用戶信息,比較詳細
刪除用戶:
userdel (-r) USERNAME 加上-r,刪除家目錄
小技巧:使得shell提示符正常的方法:
cp /etc/skel /用戶家目錄
/etc/skel中定義了shell提示符的標準
由-bash-4.1$ --> [user1@localhost]$
5.添加,刪除組
以用戶的角度,組的類型:
私有組:創建時自帶的組,創建用戶的時候系統會自動創建一個同名的組,這個組是用戶的私有組
附加組:用戶加入的另外的組
添加組:
groupadd GRPNAME
/etc/group:
組名:密碼佔位符:GID:以此組爲附加組的用戶列表,用戶用逗號分隔
-g GID:創建組的時候指定GID
-r 創建系統組
刪除組:
groupdel GRPNAME
6.修改用戶屬性
usermod:
-u UID 修改UID
-g GID 修改GID
-a (追加附加組) -G GID 修改附加組,不加-a會覆蓋原有的附加組
-c COMMENT
-s /path/to/where
-l NEWNAME 修改用戶登陸名稱
-m -d /path/to/somewhere 修改用戶家目錄,加上-m則會把原來家目錄的中的數據拷貝過去
7.修改組屬性
groupmod:
-g 新GID號
-n 新組名
8.密碼管理
passwd:修改自己的密碼
passwd USERNAME:修改指定用戶密碼
密碼安全策略:
1.密碼長度至少5位
2.包含大小寫字母,數字,特殊字符至少三類
3.定期更換:不要重複使用已用過的密碼
passwd
-l:鎖定用戶賬戶
-u:解鎖
9.密鑰屬性修改
passwd
-e 密碼過期期限
-n 密碼最短使用天數
-x 密碼最長使用天數
-w 警告天數
-i 非活動天數
chage
-d 修改密碼最近一次修改時間
-m 修改密碼最短使用期限
-M 修改最長使用期限
-W 警告天數
-I 非活動天數
-E 過期時間
usermod -e YYYY-MM-DD賬號的過期期限
-i 天數 非活動天數