安全3A任何一個安全策略都應該有Authentication(認證)、Authentication(授權)、Accouting|Audition(審計)這三個措施。
用戶(User)Linux用戶是安全3A中的Authentication(認證)措施。用戶在登錄時,系統會檢查用戶輸入的用戶名和密碼。如果用戶輸入的用戶名和密碼匹配,會根據用戶信息給用戶分配一個令牌token;如果用戶輸入的用戶名和密碼不匹配,直接拒絕用戶登錄。
用戶類型 人識別用戶是靠用戶名,識別用戶是靠UID
管理員: root用戶,UID為0。
普通用戶: UID范圍1-65535。
- 系統用戶: 用于對守護進程獲取資源進行權限分配。Centos6系統的UID范圍1-499,Centos7系統的UID范圍1-1000。
- 登錄用戶: 用于用戶的交互式登錄。Centos6系統的UID范圍500-65536,Centos7系統的UID范圍1000-65535。
組(Group)Linux組是用戶權限分配的容器,同一個組內的用戶都能夠獲得這個組擁有的權限。
站在系統管理的角度
管理員組: root用戶組,GID為0。 普通用戶組: UID范圍1-65535。
- 系統用戶: Centos6系統的GID范圍1-499,Centos7系統的GID范圍1-1000。
- 登錄用戶: Centos6系統的GID范圍500-65536,Centos7系統的GID范圍1000-65535。
站在用戶的角度
主要組(主組):
- 用戶必須屬于一個主組,且只能有一個
- 組名和用戶名同名,且該組成員只有用戶一個,那么這個組是用戶的私有組
附加組(輔助組): 一個用戶可以屬于零個或多個輔助組
進程的安全上下文
進程的安全上下文是保障系統運行安全的一個非常重要的技術
進程是運行中的程序。每個進程都必須以一個特定的用戶身份運行,即進程是有屬主的。當用戶運行一個程序時,這個程序運行起來的進程的屬主就是該用戶。以進程訪問系統上的文件為例: 系統檢查進程的屬主是不是這個文件的屬主,如果是,進程以文件的屬主權限訪問該文件;否則,系統再檢查進程的屬主所在的組里(包括附加組)有沒有該文件的屬組,如果有,進程以文件的屬組權限訪問該文件;如果沒有,進程以文件的其他者的權限訪問該文件。
用戶相關的文件
/etc/passwd——存放用戶及其屬性信息
name : password : UID : GID : GECOS : directory : shell
- name: 用戶登錄名
- password: 早期用來存放用戶加密過后的密碼
- UID: 用戶的身份編號
- GID: 用戶的主組編號
- GECOS: 用戶的全名或注釋
- directory: 用戶的家目錄
- shell: 用戶默認使用的登錄shell
/etc/shadow ——存放用戶密碼及其相關屬性
name : password : last change : minimum age : maximum age : warning period : inactivity period : expiration date : reserved field
- name: 用戶的登錄名
- password: 用戶密碼。centos5采用md5加密方法,centos6/7采用sha512加密方法。
- last change: 密碼上一次修改距1970.1.1所經過的天數
- minimum age: 密碼的最短使用天數,(0表示密碼可隨時變更)
- maximum age: 密碼的最長使用天數,(9999表示密碼永不過期)
- warning period: 密碼的警告期限,用戶登錄時提示用戶修改密碼
- inactivity period: 非活動期限,用戶密碼過期超過此時間將被禁用
- expiration date: 從1970.1.1開始算,超過此時間帳號失效
組相關配置文件
/etc/group ——存放用戶組及其相關屬性信息
group_name : password : GID : user_list
- group_name: 組名
- password: 組密碼, 組密碼通常是記錄在/etc/gshadow文件中
- GID: 組ID
- user_list: 以當前組為附加組的用戶列表(以逗號分隔)
gshadow ——用戶組的shadow文件
group_name : encrypted_password : administrators : members
- group_name: 組名
- encrypted_password: 加密過后的密碼
- administrators: 組管理員密碼
- user_list: 以當前組為附加組的用戶列表(以逗號分隔)
用戶管理相關命令
useradd 創建用戶并設置相關屬性
useradd [options] LOGIN
- -c, –comment COMMENT: 用戶的注釋信息
- -d, –home-dir HOME_DIR: 指定用戶家目錄。家目錄中的內容默認是從/etc/skel復制過去的,當用戶家目錄已經存在時不會復制。
- -e, –expiredate EXPIRE_DATE: 指定用戶過期時間(格式: YYYY-MM-DD)
- -f, –inactive INACTIVE: 指定賬戶的非活動期限
- -g, –gid GROUP: 指定用戶的基本組id或組名。
- -G, –groups GROUP1[,GROUP2,…[,GROUPN]]]: 指定用戶的附加組,多個用, 逗號分隔
- -s, –shell SHELL: 指定用戶的默認shell
- -o, –non-unique: Allow the creation of a user account with a duplicate (non-unique)UID。This option is only valid in combination with the -u option。
- -u, –uid UID: 指定用戶的UID
- -r: 創建系統用戶
- -D: 列出/改變創建用戶的默認值, useradd創建用戶的默認值存儲在/etc/default/useradd和/etc/login.defs文件中
-
usermod 用戶屬性修改
usermod [OPTION] login
- -a, –append: 配合-G選項給用戶添加附加組
- -u, –uid UID: 修改用戶的UID
- -g, –gid GROUP: 修改用戶的基本組ID
- -G, –groups GROUP1[,GROUP2,…[,GROUPN]]]: 修改用戶的附加組列表,常配合-a選項給用戶添加附加組
- -s, –shell SHELL: 修改用戶的默認登錄shell
- -c, –comment COMMENT: 修改用戶的注釋信息
- -d, –home HOME_DIR: 修改用戶的家目錄,配合-m選項移動或重命名用戶的家目錄
- -l, –login NEW_LOGIN: 修改用戶的登錄名
- -L, –lock: 鎖定用戶,在/etc/shadow 密碼欄的增加 !
- -U, –unlock: 解鎖用戶,將 /etc/shadow 密碼欄的 ! 拿掉
- -e, –expiredate EXPIRE_DATE: 修改用戶的過期時間(格式: YYYY-MM-DD)
- -f, –inactive INACTIVE: 修改用戶的非活動期限
- -o, –non-unique: When used with the -u option, this option allows to change the user ID to a non-unique value
- userdel 刪除用戶
-
用戶已經登錄時無法刪除
userdel [options] LOGIN
- -r, –remove: 刪除用戶、用戶家目錄和用戶郵箱
-
id 查看用戶的相關信息
當id命令后面不跟用戶時顯示當前登錄用戶的相關信息
id [OPTION]… [USER]
- -g, –group: 只顯示用戶的基本組ID
- -G, –groups: 只顯示用戶所有的附加組ID, 用空格分割
- -u, –user: 只顯示用戶的UID
- -n, –name: 使用名稱代替數字ID信息
su 切換用戶或以其他用戶身份執行命令
切換用戶的方式:
- su UserName:非登錄式切換,即不會讀取目標用戶的 配置文件,不改變當前工作目錄
-
su – UserName:登錄式切換,會讀取目標用戶的配置 文件,切換至家目錄,完全切換
root su至其他用戶無須密碼;非root用戶切換時需要密碼
su [options…] [-] [user [args…]]
- -l: 相當于su – user
- -c: 換個身份執行命令
passwd 修改用戶密碼和密碼相關屬性信息
passwd [OPTIONS] [UserName] (不指定UserName是修改自己的密碼,只有root用戶才能指定UserName)
- -l, –lock: 鎖定指定用戶
- -u, –unlock: 解鎖指定用戶
- -e, –expire: 強制用戶在下一次登錄必須更改密碼
- -n, –minimum DAYS: 修改指定用戶密碼的最短使用期限
- -x, –maximum DAYS: 修改指定用戶密碼的最長使用期限
- -w, –warning DAYS: 修改指定用戶密碼的警告期限
- -i, –inactive DAYS: 修改指定用戶密碼的非活動期限
- –stdin: 從標準輸入接收用戶密碼
chage 設置用戶密碼策略
chage [OPTION]… LOGIN
- -d, –lastday LAST_DAY: 設置指定用戶密碼上一次修改時間(格式: YYYY-MM-DD)
- -E, –expiredate EXPIRE_DAT: 設置指定用戶的過期時間(格式: YYYY-MM-DD)
- -I, –inactive INACTIVE: 設置指定用戶密碼的非活動期限
- -m, –mindays MIN_DAYS: 設置指定用戶密碼的最短使用期
- -M, –maxdays MAX_DAYS: 設置指定用戶密碼的最長使用期
- -W, –warndays WARN_DAYS: 設置用戶密碼的警告期限
- -l, –list: 顯示指定用戶的密碼策略
用戶管理的其他命令
- chfn-69806: 修改用戶的注釋信息
- chsh: 修改用戶使用的默認shell
- finger: 查看用戶的注釋信息
組管理相關命令
groupadd 創建組并指定相關信息
groupadd [options] group
- -g, –gid GID: 創建用戶組并指定其組id
-
-r, –s
groupmod 修改組信息
groupmod [options] GROUP
- -g, –gid GID: 修改指定用戶組的GID
- -n, –new-name NEW_GROUP: 指定組的組名
groupdel 刪除組
如果某個用戶以這個組為主組,那么這個組將無法被刪除
gpasswd 更改組密碼和組的成員信息
gpasswd [option] GROUP gpasswd命令后面不跟選項直接跟組名是修改指定組的密碼
- -a, –add USER: 將指定用戶添加到組里面
- -d, –delete user: 將指定用戶從組中刪除
- -A, –administrators user,…: 設置該組的管理員列表, 多個用逗號隔開
groupmems 查看或管理組中成員
groupmems [options] [action]
Option:
- -g, –group groupname: 指定需要查看或操作的對象
action:
- -a, –add username: 向指定組中添加用戶
- -d, –delete username: 刪除組中的指定用戶
- -p, –purge: 清空指定組中的組中的所有用戶
- -l, –list: 查看指定組的所有用戶
groups 查看組信息
newgrp 臨時切換基本組
當用戶的基本組和附加組中已經包含了要切換的目標組,則用戶使用newgrp切換基本組時不需要輸入密碼
其他相關命令
- vipw、vigr 編輯用戶和組相關文件,帶語法檢查功能
- pwck、grpck 檢查用戶和組相關文件。
- openssl rand -base64 20 生成20位的隨機數
- newuser FILE: 批量創建用戶,要求FILE文件的格式和/etc/passwd文件的格式一樣
- cat passwd.txt | chpasswd: 批量更改用戶密碼,passwd.txt文件格式: Username: passwd
原創文章,作者:island,如若轉載,請注明出處:http://www.www58058.com/69806