Linux系統中管理用戶賬戶和組賬戶及其權限設置
超級用戶:
用戶名:root ; UID:0;
系統用戶:
用戶名:由用戶自行設定; UID:1~499(Centos6及之前),1~999(Centos7);
普通用戶:
用戶名:由用戶自行設定; UID:500+(Centos6及之前),1000+(Centos7);
用戶配置文件:用戶解析庫、用戶認證庫。
用戶解析庫:/etc/passwd
用戶認證庫:/etc/shadow
/etc/passwd字段詳解:(字段間使用":"分隔)
root:x:0:0:root:/root:/bin/bash
第一字段:用戶名稱
第二字段:使用X做密碼占位符
第三字段:用戶UID
第四字段:用戶主要組的GID
第五字段:用戶主要組組名
第六字段:用戶家目錄
第七字段:用戶默認bash
/etc/shadow字段詳解:
root:$6$6kkn6aL6.uXXGiV9$Z1rLH/FLESIInB.V1TfCn9V/AhDlQMQIwOKwpxdk4h101tB6SdUv6USEIccF2XNcR.kpUuQE6x4HbSed24bNP.::0:99999:7:::
第一字段:用戶名稱
第二字段:經過加密的用戶密碼;主要由 加密算法+salt(鹽)+加密後的密碼 組成期間由"$"分隔;
第三字段:最後一次修改密碼的時間,其表示法為從1970年1月1日到當前系統時間所經過的天數;
第四字段:密碼的最短使用期限;0表示隨時可更改密碼;
第五字段:密碼的最長使用期限;
第六字段:密碼使用達到最大使用期限前多少天提示用戶;默認為7天;
第七字段:密碼過期後可更改密碼寬限期;
第八字段:用戶密碼的絕對失效時間;其表示法為從1970年1月1日到指定日期時間的天數; usermod -e 可修改;
第九字段:保留,並未使用;
用戶賬戶管理相關命令:
useradd -- 創建一個新用戶或更新默認新用戶信息
格式:useradd [options] USERNAME
常用選項:
-d, --home-dir HOME_DIR:指定新建用戶的家目錄;
-g, --gid GROUP:指定新建用戶的主要組;GROUP可使用組名或GID;如不使用此選項默認會創建同名組設置為主要組;
-G, --groups GROUPS:指定新建用戶的附加組;GROUP可使用組名或GID;
-r, --system :創建一個系統用戶;
userdel -- 刪除用戶賬戶和相關文件
格式:userdel [options] UESRNAME
常用選項:
-f, --force :強制刪除用戶,即使用戶正處於登陸狀態等情況;(不建議使用)
-r,--remove :用戶主目錄中的文件將隨用戶主目錄和用戶郵箱一起刪除。
usermod -- 修改一個用戶賬戶
格式:usermod [options] USERNAME
常用選項:
-d, --homeHOME_DIR:更改用戶的家目錄;(前提修改的目錄事先存在)
-c, --commentCOMMENT:修改用戶註釋信息;
-e expire-date:修改用戶密碼過期的絕對日期;
-l, --loginNEW_LOGIN:修改用戶的登陸名;
-s, --shellSHELL:修改用戶的登陸SHELL;
-u, --uidUID:修改用戶的UID;
-g, --gidGROUP:修改用戶主要組;
-G, --groupsGROUP1[,GROUP2,...[,GROUPN]]]:修改用戶附加組;可使用-aG為用戶追加附加組;
-L,--lock:鎖定用戶;
-U,--unlock:解鎖用戶;
passwd -- 更新用戶的身份驗證令牌
格式:passwd [options] USERNAME
常用選項:
-d, --delete :刪除用戶的密碼;(僅限 root 用戶)
-l, --lock :鎖定指名帳戶的密碼(僅限 root 用戶)
-u, --unlock解鎖指名賬戶的密碼(僅限 root 用戶)
--stdin : 從標準輸入讀取令牌(僅限 root 用戶)
組賬戶分為:超級用戶組、系統組、普通用戶組。
超級用戶組:
組名:root;GID:0;
系統用戶組:
組名:由用戶自行設定; GID:1~499(Centos6及之前),1~999(Centos7);
普通用戶組:
組名:由用戶自行設定; GID:500+(Centos6及之前),1000+(Centos7);
組賬戶配置文件:組賬戶認證庫,組賬戶解析庫。
組賬戶解析庫:/etc/group
組賬戶認證庫:/etc/gshadow
/etc/group字段詳解:
root:x:0
第一字段:組名
第二字段:密碼占位符;
第三字段:GID
第四字段:以該組為附加組的用戶;
/etc/gshadow字段詳解:
root:::
第一字段:組名;
第二字段:組賬戶加密保存的密碼;
第三字段:組賬戶管理員(已廢棄)
第四字段:以該組為附加組的用戶賬戶列表;
groupadd -- 創建一個新組
格式:groupadd [options] GROUPNAME
常用選項:
-g, --gid GID:指定該組的GID;
-r, --system:將新建的組設置為系統組;
groupdel -- 刪除一個組
格式:groupdel [options] GROUPNAME
groupmod -- 修改組賬戶信息
格式:groupmod [options] GROUPNAME
常用選項:
-g, --gid GID:修改GID
-n, --new-name NEW_GROUP:修改組名;
su -- 切換用戶身份
格式:su [options] USERNAME
常用選項:
-, -l, --login:切換登陸用戶及其shell,家目錄等一系列選項;
-c :使用某用戶身份執行某命令:(#] su root -c "usseradd god")
註意:su USERNAME 與 su -USERNAME 區別在於 前者只是切換了身份,但SHELL環境仍然是原用戶的SHELL;而後者連用戶和SHELL環境一起切換成新用戶的了。只有切換了SHELL環境才不會出現PATH環境變量錯誤。
id -- 顯示真實和有效的 UID 和 GID
格式:id [options] USERNAME
常用選項:
-u:顯示用戶有效UID
-g:顯示用戶有效GID
-n:顯示名稱
其他相關配置文件:
/etc/default/useradd
作用:定義創建用戶時的用戶屬性的默認值文件
GROUP=100 // 在創建用戶時如果沒有為用戶指定基本組,系統會為用戶指定一個與用戶名相同的組作為其基本組;
HOME=/home // 在創建用戶時,如果沒有為用戶指定家目錄,則會在/home目錄中創建一個於用戶名相同的目錄作為家目錄
INACTIVE=-1 // 在創建用戶時,設定用戶密碼過期之後的寬限期,默認為-1,意為關閉用戶密碼過期寬限功能,即寬限期為永遠;
EXPIRE= // 在創建用戶時,設定用戶密碼的絕對失效日期,默認沒有啟用;
SHELL=/bin/bash // 在創建用戶時,設定用戶的默認登陸shell,默認值為/bin/bash
SKEL=/etc/skel // 在創建用戶時,為用戶家目錄提供的默認文件的模板
CREATE_MAIL_SPOOL=yes // 在創建用戶是,是否直接為用戶創建郵箱文件,默認創建;
/etc/login.defs(definations)
作用:定義shadow_utils相關的屬性,包括用戶郵箱路徑、密碼的時間參數、UID和GID的範圍,刪除用戶賬戶的命令、是否設置私有組(僅包含一個用戶並作為該 用戶主要組)、權限位掩碼、家目錄創建開關、加密算法選擇;
MATL_DIR /var/spool/mail
//指定創建用戶時為用戶指定郵箱文件的路徑
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
//與密碼的時間參數有關的設置
UID_MIN 1000
UID_MAX 60000
# System accounts
SYS_UID_MIN 201
SYS_UID_MAX 999
GID_MIN 1000
GID_MAX 60000
# System accounts
SYS_GID_MIN 201
SYS_GID_MAX 999
//指定默認的ID選擇範圍
CREATE_HOME yes
//是否在創建用戶時為用戶創建家目錄的開關
UMASK 077
//指定用戶家目錄的默認權限的掩碼
USERGROUPS_ENAB yes
//是否開啟私有組開關
ENCRYPT_METHOD SHA512
//加密算法的選擇
/etc/skel(directory)
作用:為新創建的用戶的家目錄提供默認的shell配置文件
Linux系統中管理用戶賬戶和組賬戶及其權限設置