用戶、組:算法 多用戶:多人同時使用系統資源; AAA:shell Authentication身份驗證 Account帳戶bash
|
用戶的類別:app 管理員:rootdom 普通用戶:ide 系統用戶:僅用於運行服務程序;ui 登陸用戶:系統資源的正常使用者;加密 用戶標識:UserID, UID spa 16bits二進制數字:0-65535; 管理員:0 普通用戶: 系統用戶: CentOS 5, 6: 1-499 CentOS 7: 1-999 普通用戶: CentOS 5,6: 500+ CentOS 7: 1000+ 名稱解析:名稱轉換; 解析庫: username <--> UID /etc/passwd:用戶名、UID及其它屬性信息解析庫; |
用戶組: 組類別: 管理員組 普通用戶組: 系統組 登陸組 組標識:GroupID, GroupID 管理員組:0 普通用戶組: 系統組: CentOS 5,6: 1-499 CentOS 7: 1-999 登陸組: CentOS 5,6: 500+ CentOS 7: 1000+ 名稱解析:groupname <--> gid 解析庫:/etc/group 組類別:以用戶爲核心 用戶的主組:基本組; 用戶的附加組:額外組; 組類別:根據組內容納的用戶來劃分 私有組:與用戶名相同,且只有一個此用戶; 公共組:組內包含了多個用戶; 認證機制:驗正用戶的確是他所聲稱的人; 經過對比事先存儲的,與登陸時所提供的信息是否一致; 存儲於何處: 用戶的認證信息庫:/etc/shadow 組的認證信息庫:/etc/gshadow 密碼:加密存放,使用單向加密機制; 單向加密:僅能加密,不能解密;提取數據特徵碼; 數據相同:加密結果相同; 定長輸出: 雪崩效應: 算法: md5: message digest, 128bits sha1: secure hash algorithm, 160bits sha224 sha256 sha384 sha512 添加salt:取隨機數; 隨機數: 熵池: 僞隨機數:軟件模擬產生; /dev/random:僅從熵池返回隨機數,隨機數耗盡時會阻塞進程; /dev/urandom:先從熵池返回隨機數,熵池耗盡時,則從僞隨機數生成器返回隨機數; |
用戶和組的管理: 主要以命令進行: 組:groupadd, groupmod, groupdel 用戶:useradd, usermod, userdel 認證:passwd 組解析庫文件:/etc/group GRPNAME:x:GID:user1, user2, ... 組名:密碼點位符:GID:以此組爲附加組的用戶列表,以逗號分隔 Eg: nologin:x:2015: storm:x:2016: groupadd命令:添加組 groupadd [選項] group -g GID:指明GID;eg:~]# groupadd -g 1005 apple -r, --system:系統組; groupmod命令:修改組信息 groupmod [選項] GROUP -g GID -n NEW_NAME:修改組名;eg:~]# groupmod -n apple9 apple groupdel命令:刪除組 groupdel [選項] GROUP 用戶解析庫:/etc/passwd name:password:UID:GID:GECOS:directory:shell Eg:storm:x:2016:2016::/home/storm:/bin/bash useradd命令:添加用戶 useradd [選項] 登陸名 -c, --comment COMMENT:註釋信息,通常爲Full Name; -d, --home /PATH/TO/HOME_DIR:家目錄路徑;目標路徑不能事先存在,不然會有警告,不會得利skel相關的文件給用戶; -g, --gid GROUP:用戶的基本組組名或GID; -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:用戶所屬的附加組列表,彼此間用逗號隔開,中間沒有空格; -m, --create-home:強制建立家目錄; -M:不建立用戶主目錄,即便系統在 /etc/login.defs 中的設置 (CREATE_HOME) 爲 yes; -r, --system:建立一個系統帳戶 -s, --shell SHELL:用戶的登陸 shell 名,默認爲留空,讓系統根據 /etc/default/useradd 中的 SHELL 變量選擇默認的登陸shell; -u, --uid UID:用戶 ID 的數字值。此值必須爲惟一的,除非使用了 -o 選項。此值必須非負,默認使用大於等於UID_MIN,且大於任何其餘用戶 ID 最小值。 注意:建立登陸用戶時,爲其自定義的shell程序必須爲可登陸shell,且要位於/etc/shells文件中; useradd -D:顯示建立用戶時的默認設置; useradd -D 選項:設置某默認選項; -e, --expiredate EXPIRE_DATE:用戶帳號的過時期限;過時後會被鎖定;日期以 YYYY-MM-DD 格式指定 -f, --inactive INACTIVE:密碼過時後,帳戶被完全禁用以前的天數。0 表示當即禁用,-1 表示禁用這個功能。 爲用戶提供默認配置的配置文件: /etc/login.defs, /etc/default/useradd 影子口令文件:/etc/shadow 登陸名:密碼:最近一次的修改時間:密碼的最短使用期限:密碼最長使用期限:提早警告的天數:非活動期限:帳號的禁用日期:保留字段 Eg:apple:$6$x0jm5KMu$N.gOtGoel2RGUsh2HaboaZr/2dECBuoZRH91MYjMvnS5lZgfXQRuOkvzOcTtNcPAE5kudAa.IBvVFTlrwckiM.:16870:0:99999:7::2019: 密碼:$加密算法$salt$加密的密碼字符串 usermod命令:修改帳號信息 -c, --comment COMMENT -d, --home HOME_DIR:修改家目錄爲新的位置,但通常應該同時使用-m選項以保證原家目錄中的文件會移動到新目錄中; -g, --gid GROUP eg: ~]# usermod -g 2006 apple -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:修改時會覆蓋原有的附加組;一同使用-a選項,表示爲用戶添加新的附加組; -l, --login NEW_LOGIN:修改當前用戶的用戶名; -s, --shell SHELL -u, --uid UID -L, --lock:鎖定用戶的密碼。這會在用戶加密的密碼以前放置一個「!」 -U, --unlock:解鎖用戶的密碼。這將移除加密的密碼以前的「!」 userdel命令:刪除用戶帳號 userdel [選項] 登陸名 -r, --remove:用戶主目錄中的文件將隨用戶主目錄和用戶郵箱一塊兒刪除 passwd命令:密碼管理命令 passwd [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [--stdin] [username] (1) passwd:修改本身的密碼; (2) passwd username:修改其它用戶的密碼,僅root有此權限; 選項: -l:鎖定密碼 -u:解鎖解密 -d:清除密碼 --stdin:從標準輸入接收密碼; echo "PASSWORD" | passwd --stdin USERNAME Eg: ~]# echo "apple6892234" | passwd --stdin apple3 密碼複雜度: (1) 不能少於8個字符; (2) 不能使用與過去的密碼太類似的密碼; (3) 應該使用四類字符中的至少三類;
id命令:查看用戶相關的id信息; id [OPTION]... [USER] -u:僅查看uid -g:僅查看gid -G:查看所屬的全部組的ID; -n:顯示名稱,而非ID; su命令:switch user 切換用戶時: (1) 不讀取目標用戶的配置文件(非登陸式切換,半切換); su USERNAME (2) 讀取目標用戶的配置文件(登陸式切換,徹底切換); su -l USERNAME su - USERNAME -c command, --command=command:僅以指定的用戶的身份運行此處指定的命令,而不執行真正的身份切換操做; 注意:root切換至任何其它用戶無須認證密碼;普通用戶切換至其它用戶,都須要密碼; gpasswd命令:爲組添加密碼 組密碼文件:/etc/gshadow gpasswd [選項] group -a USERNAME:把用戶添加至組中; -d USERNAME:今後組中移除此用戶; newgrp命令:登陸到一個新組 chage命令:修改用戶帳號的各類期限; |
安全上下文: 進程:以某個用戶的身份運行,進程對資源的操做權限取決於它所表明的用戶; 文件:權限模型 屬主:owner 屬組:group 其它:other 權限模型生效的機制: 進程的運行者: 是否與文件的屬主相同,若是是,則以文件屬主的身份來訪問此文件;不然 是否屬於文件的屬組,若是是,則以文件屬組的身份來訪問此文件;不然 以文件的其它用戶的身份來訪問此文件; |
權限管理: 文件系統文件權限: 三類用戶: 屬主:owner, u 屬組:group, g 其它:other, o 權限: r: readable,可讀 w: writable, 可寫 x:excutable, 可執行 權限管理: 文件: r:可獲取文件的數據; w:可修改文件的數據; x:可將此文件運行爲進程; 目錄: r:可以使用ls命令獲取其下的全部文件列表;但不可使用「ls -l」去獲取詳細信息,也不能夠cd至此目錄中; w:可修改此目錄下的文件列表, 便可以在此目錄下建立或刪除文件; x:可使用"ls -l「命令來獲取其下的文件的詳細屬性信息,也可cd至此目錄中; rwxrwxrwx: owner: rwx group: rwx other: rwx 權限組合機制: 以owner爲例: --- 000 0 --x 001 1 -w- 010 2 -wx 011 3 r-- 100 4 r-x 101 5 rw- 110 6 rwx 111 7 練習: rwxr-xr-x:755 rw-r--r--: 644 750: rwxr-x---, 640: rw-r----- 權限管理: ownership: 僅管理員有權限 改屬主:chown 改屬組:chgrp mode(permission):僅屬主 chmod chmod命令: 做用:change file mode bits chmod [OPTION]... MODE[,MODE]... FILE... chmod [OPTION]... OCTAL-MODE FILE... chmod [OPTION]... --reference=RFILE FILE... 用戶的標識符:u,g,o,a (1) chmod [OPTION]... MODE[,MODE]... FILE... [apple@buck ~]$ ll /tmp total 0 drwxr-xr-x. 2 apple apple1 6 Mar 10 08:24 apple [apple@buck ~]$ chmod u=rw- /tmp/apple [apple@buck ~]$ ll /tmp total 0 drw-r-xr-x. 2 apple apple1 6 Mar 10 08:24 apple MODE: 賦權表示法:直接操做一類用戶的全部權限位rwx; u= g= o= a= 兩類用戶權限相同:ug=, go= 不一樣類的用戶權限不一樣:u=,g=,o= 受權表示法:操做一類用戶一位或多位權限; u+, u- g+, g- o+, o- a+, a- 兩類用戶權限收授機制相同:ug+, ug-, ... 不一樣類的用戶權限不一樣:u+,g+,o+ (2) chmod [OPTION]... OCTAL-MODE FILE... (3) chmod [OPTION]... --reference=RFILE FILE... --reference=RFILE:RFILE表示參考其權限模型; 經常使用選項: -R, --recursive:遞歸修改; chown命令: chown [OPTION]... [OWNER][:[GROUP]] FILE... chown [OPTION]... --reference=RFILE FILE... 經常使用選項: -R, --recursive:遞歸修改; chgrp命令: chgrp [OPTION]... GROUP FILE... chgrp [OPTION]... --reference=RFILE FILE... umask:顯示或設定文件模式掩碼 文件: 666-umask 目錄: 777-umask 說明:之因此文件用666去減,表示文件默認不能有執行權限;若是減得的結果中,u,g或o有執行權限時, 則須要加1; 顯示: umask 設定: umask MASK 注意:此設定僅對當前shell進程有效; |