Linux用戶,組以及權限管理
基礎概念和工作機制:
- 安全3A
資源分派
Authentication 認證
Authorization 授權
Accouting,Audition 審計
用戶user ,用戶有令牌 token, identity ,組:用戶組,用戶容
Linux中有存放用戶名和密碼的數據庫,用戶名和成對的密碼判定用
是否登錄成功。每個用戶登錄時都在數據庫裏驗證用戶名和密碼是否正確,如果正確會頒發令牌,當用戶訪問文件時會提交令牌給資源,資源根據提交的令牌判斷用戶是否有權限訪問此文件,用戶要想得到最新令牌必須重新登錄。 - Linux上的用戶即Username/UID分爲以下類別:
管理員:root,0
普通用戶:1-65535
普通用戶分爲:系統用戶和登錄用戶:
系統用戶:1-499(Centos6) 1-999(Centos7)對守護進程獲取資源進行權限分配。
登錄用戶:500+(Centos6) 1000+(Centos7)通過交互式方式登錄。 - Linux組:Groupname/GID
管理員組:root,0
普通組:1-65535
普通組又分爲系統組和非系統組,非系統組又叫做普通組
系統組:1-499(Centos6),1-999(Centos7)
非系統組:500+(Centos6),1000+(Centos7)
注:對於一個用戶而言可以有多個不同的組,分別稱之爲用戶的基本組(主組)和附加組;基本組組名和用戶名相同,且僅包含一個用戶,也叫做私有組。基本組以外的組屬於用戶的附件組(或者額外組 )
linux用戶和組相關配置文件:
- /etc/passwd:名稱解析庫,該文件通過名稱解析記錄了用戶及其屬性信息
通過whatis passwd來查看其對應的配置文件的幫助信息
name:password:UID:GID:GECOS:directory:shell
用戶名:密碼:UID:GID:詳細說明:用戶的家目錄:默認shell - /etc/group:組及其屬性信息:
group_name:password:GID:user_list
組名:組密碼:組ID:以當前組爲附件組的用戶列表(如有多個,用逗號隔開) - /etc/shadow:用戶密碼及其相關屬性(9個字段)
login name:用戶名
encrypted password:加了密的密碼
date of last password change:最近一次修改密碼的日期:從1970年1月1日起到密碼最近一次被修改的時間 值爲0第一次登錄必須修改密碼
minimum password age: 密碼的最小使用期限:密碼必須使用多長時間 值爲0隨時更改
maximum password age:密碼的最大使用期限:密碼可以使用多長時間(密碼有效期),使用多少天后必須更改 99999永久有效
password warning period:密碼的警告時間段:密碼過期前幾天提醒用戶
password inactivity period:密碼禁用期:密碼過期後還可以使用幾天
account expiration date:賬戶的過期日期:從1970年1月1日算起,多少天后帳號失效
reserved field:預留 -
密碼的加密解密機制:
加密:明文-->密文
解密:密文-->明文
對稱加密:加密和解密使用同一密碼
非對稱加密:加密和解密使用同一對密鑰,密鑰對:公鑰,私鑰
單向加密:只能加密,不能解密,提取數據特徵碼,相同算法定長輸出,獲得密文不可逆推出原始數據
雪崩效應:初始條件的微小改變,引起結果巨大改變密碼用策略: 使用隨機密碼 最短長度不要低於8位 應該使用大寫字母,小寫字母,數字和標點符號四類字符中至少三類 定期更換 算法:md5,sha1,sha224,sha256,sha384,sha512
用戶和組的相關命令:
1.groupadd:添加組 groupadd [options] group
-g GID:手動指定GID,默認是上一個組的GID+1
-r:創建系統組
安全上下文:進程以發起者的身份進行,進程對文件的訪問權限,取決於發起此進程的用戶權限
2.groupmod:修改組屬性:groupmod [options] GROUP
-g GID:修改組ID
-n name:修改組名
3.groupdel:刪除組 groupdel [options] GROUP
4.useradd:創建用戶 useradd [options] LOGIN
-u,UID,指定uid
-g ,GROUP,指定基本組id,此組得事先存在
-G ,爲用戶指定附加組
-c,指明註釋信息
-d:指明用戶家目錄:通過複製/etc/skel此目錄並重命名實現,指定的家路徑,如果事先存在,則不會爲用戶複製環境配置文件
[root@localhostCentos7 etc]# ls -al skel/
total 24
drwxr-xr-x. 3 root root 78 Aug 1 2018 .
drwxr-xr-x. 141 root root 8192 Jul 3 21:24 ..
-rw-r--r--. 1 root root 18 Aug 3 2017 .bash_logout
-rw-r--r--. 1 root root 193 Aug 3 2017 .bash_profile
-rw-r--r--. 1 root root 231 Aug 3 2017 .bashrc
drwxr-xr-x. 4 root root 39 Aug 1 2018 .mozilla
-s,--shell,指明用戶默認shell,可用shell列表(/etc/shells):
[root@localhostCentos7 etc]# cat shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
-r,--system:創建系統用戶
-D:顯示創建用戶的默認配置:
[root@localhostCentos7 etc]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
useradd -D [options]:修改默認值
注:創建用戶時諸多默認設定配置文件/etc/login.defs,修改結果保存於/etc/default/useradd文件中
5.usermod:修改用戶屬性:usermod [options] LOGIN
-u UID:修改用戶的ID
-g GROUP:修改用戶所屬的基本組
-G,:修改用戶所屬的附加組,原來的附加組會被覆蓋
-a,與-G一同使用,用於爲用戶追加新的附件組
-c:修改註釋信息
-d:修改用戶的家目錄,用戶原來的文件不會被轉移至新的家目錄,若要移動,則要同時使用-m選項
-l,--login:修改用戶名
-s,--shell:修改用戶的默認shell
-L,--lock:鎖定用戶密碼,即在用戶原來的密碼字符串之前添加一個“!”
-U,--unlock,解鎖用戶密碼
6.userdel:用戶刪除用戶:userdel [options] LOGIN
-r:刪除用戶家目錄
7.passwd:修改用戶自己的密碼
passwd USERNAME:修改指定用戶密碼,僅root有權限
-L:鎖定用戶
-U:解鎖用戶
-d:清除用戶密碼
-e:過期期限,日期DATE
-i:非活動期限,DAYS
-n:密碼的最短使用期限
-x:密碼的最長使用期限
-w:密碼的警告期限
--studin:標準輸入
echo "password" | password --studin root &> /dev/null
8.gpasswd:用戶切換基本組
gpasswd [option] group
-a user:將user添加指定組中
-d user:將user從指定組中國刪除
-A userlist:設置有組管理權限的用戶列表
9.newgrp:臨時切換基本組:
如果用戶本不屬於此組,則需要組的密碼
10.chage:修改用戶密碼屬性
chage [options] LOGIN
-d LAST_DAY:修改用戶最近一次修改密碼的時間
-I INACTIVE:修改用戶的非活動期限11.id:顯示用戶真實和有效ID
-u:僅顯示有效的UID
-g:僅顯示用戶的基本組ID
-G:僅顯示用戶所屬的所有組的ID
-n:顯示名字而非ID
12.su:switch user
登錄式切換:會通重新讀取用戶的配置文件來重新初始化
非登錄式切換:不會讀取目標用戶配置文件進行初始化
登錄式切換: su -, -l, --login
非登錄式切換:su
注:管理員可無密碼切換其他任何用戶
-c "COMMAND":僅以指定用戶的身份運行此處命令
文件權限管理:-
權限表示方法:
rwxrwxrwx:
左三位:定義ower權限,
中三位:定義group權限,
左三位:定義other權限
進程運行上下文:進程對文件的訪問權限應用模型
進程的屬主與文件的屬主是否相同,如果相同則應用屬主權限,否則,則檢查進程的屬主是否屬於文件的屬組,如果是,則應用屬組權限,否則就只能應用other權限
權限:r:read讀,w:write寫,x:excute執行文件:r:可獲取文件的數據 w:可修改文件的數據 x:可將此文件運行爲進程 目錄:r:可使用ls命令獲取其下的所有文件列表 w:可修改此目錄下的文件列表,即創建或刪除文件 x:可cd至此目錄中,且可使用ls -l來獲取所有文件的詳細屬性信息 權限、二進制表示、八進制表示對應的表示方法: ---:000 0 --x:001 1 -w-:010 2 -wr:011 3 r--:100 4 r-x:101 5 rw-:110 6 rwx:111 7
2.文件權限修改命令:
chmod:文件權限修改:
chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
-R:表示遞歸
MODE:
修改一類用戶的所有權限:u=,g=,o=,ug=,a=
修改一類用戶的某位或某些位權限:u+,u-
chmod [OPTION]... --reference=RFILE FILE...
參考RFILE文件的權限,將FILE的修改爲同RFILE的權限
文件的屬主和屬組修改:chown,chgrp:
注:文件的屬主屬組僅root可以使用
修改文件的屬主:chown
chown [OPTION]... [OWNER][:[GROUP]] FILE...有三種表示方法:
(1)OWNER:只修改屬主
(2)OWNER,GROUP修改屬主和屬組
(3)GROUP:只修改屬組
修改文件的屬組:chgrp
-R:遞歸
文件或目錄創建時的遮罩碼:umask
所謂遮罩碼是指在創建一個文件或目錄時的默認權限:
文件:666-umask
注:之所以文件是666,是因爲表示文件默認不能擁有執行權限,如果減得的結果存在x權限,則需要+1
目錄:777-umask
umask命令:
umask:查看umask
umask UMASK:設定umask的值
注:此類設置僅對當前shell進程有效 -