用戶和組管理 : 注 : 實現資源分配的機制 Authentication : 認證,驗證用戶身份是否合法或者驗證用戶是否有權使用資源,但並不能具體肯定用戶可使用那些資源以及可使用多少資源 Authorization : 受權,Linux中一切皆文件,而正是經過文件上某些元數據的修改,以實現對用戶的受權 Audition/Accounting : 審計,審覈用戶權利的使用是否合理 屬主(owner) : 即文件歸誰全部 屬組(group) : 爲linux上一組類似用戶建組,並以組爲單位進行受權 1,將屬組所擁有的權限與屬組內的用戶創建關聯 2,爲數組添加新的用戶 Linux用戶(Username) UID : linux以數字標識和追蹤用戶身份 管理員用戶 : root,0 普通用戶 : 1-65535 系統用戶 : CentOS 6 : 1-499;CentOS 7 : 1-999,對守護進程獲取資源進行的權限分配 普通用戶 : CentOS 6 : 500+;CentOS 7 : 1000+,交互式登錄 linux的安全上下文 : 進程 : process,運行中的程序 注 : 某個進程是在以發起者的身份在運行,所以發起者的身份決定了進程所可以訪問的資源的權限,進程做爲發起者的動做,其自己並無任何區別,區別在於發起者的身份 決定了動做可否執行以及執行的程度 linux組的類別 : 用戶的基本組(主組) : 即用戶的基本或主要身份,用戶擁有的大部分或主要權限都集中在在這個組中 用戶的額外組(附加組) : 用戶的額外身份,主要集中了用戶的少有的特殊權限 私有組 : 組名同用戶名,且組中只有一個用戶,建立新用戶時,未指定用戶的基本組,均默認爲用戶建立私有組 linux用戶和組的相關配置文件 : /etc/passwd : 用戶及其屬性信息 文件組織格式 : name : password : UID : GID : GECOS : directory : shell 用戶名 : 密碼 : UID : GID : 用戶的完整信息(如家庭住址,電話號碼等,信息多元時,以","分隔) : 用戶的家目錄 : 爲用戶指定的默認shell 注: 密碼字段中,並未真正存儲用戶密碼,而僅僅只是以一個佔位符佔位而已 /etc/group : 組及組屬性信息 文件組織格式 : group_name : password : GID : user_list 組名 : 組密碼 : GID : 以該組爲附加組的用戶列表(用戶多元時,以","分隔) 注 : 組密碼字段中,並未真正存儲密碼,僅僅只是以一個佔位符佔位而已 /etc/shadow : 用戶密碼及其相關屬性信息 文件組織格式 : 用戶名 : 加密後的密碼 : 最近一次更改密碼的時間 : 密碼的最小使用期限 : 密碼的最大使用期限 : 密碼的警告時間段 : 密碼的禁用期 : 帳號的過時日期 : 保留字段 加密機制 : 加密 : 明文 -> 密文 解密 : 密文 -> 明文 單向加密 : 提取數據指紋,數據與數據指紋之間一一對應,數據不變,數據指紋就不會變,但沒法根據數據指紋還原數據 加密算法 : md5 : message digest(摘要),128bits sha1 : secure hash algorithm,160bits sha224 : 224bits sha384 : 384bits sha256 : 256bits sha512 : 512bits 雪崩效應: 明文的微小改變,就會致使密文的巨幅改變,目的在於防止根據密文的類似度逆推明文的類似度 定長輸出 : 只要加密算法同樣,最終輸出的密文長度就不會改變 注 : 爲避免多個用戶輸入的密碼相同,致使一個用戶能夠根據本身的密文推出其餘用戶的密碼,所以系統會自動在用戶密碼的後面加入一串隨機數,聯合用戶密碼生成密文 每次在用戶登錄時,都會在用戶密碼後,加入該隨機數,完成用戶的認證 密碼結構 : $加密方法及版本$雜質$密碼密文 密碼的複雜性原則 : 1,至少要使用數字,小寫字母,大寫字母,特殊字符中的三種 2,要足夠長 3,使用隨機密碼 4,按期更換,不要使用最近使用過的密碼 ======================================================================================================================================================================= 用戶和組相關的管理命令 : 用戶建立 : useradd useradd login_name -u UID : 指定用戶UID,[UID_MIN,UID_MAX],定義在/etc/login.defs文件中,默認建立的用戶UID爲最近一次建立的用戶UID加一 -g GID/group_name : 指定用戶所屬的基本組,可爲基本組的組名,也可爲基本組的GID,但組必須事先存在 -G GID : 爲用戶指定附加組,組多元時,以都「,」隔開 -c,--comment 「COMMENT」 : 爲用戶指定詳細信息,信息多元時,以「,」,分隔 -d /path/to/home_dir : 指定用戶家目錄 -s SHELL : 爲用戶指定默認shell,/etc/shells:保存有可用shell列表 -r : 建立系統用戶,CentOS 6 : 1-499,CentOS 7 : 1-999 useradd -D : 配合上述選項使用,修改不給任何選項,建立用戶時的默認設置,僅對當前shell進程,當前會話有效 組建立 :groupadd groupadd group_name -g GID : 指定組ID,[GID_MIN,GID_MAX],定義在/etc/login/defs文件中 -r : 建立系統組,CentOS 6:1-499;CentOS : 1-999 ===================================================================================================================================== id : 顯示用戶的id信息 -u : 僅顯示用戶UID -g : 僅顯示基本組GID -G : 顯示用戶基本組和附加組信息 -n : name,顯示用戶及組名,而非組或用戶id ========================================================================================================================================= su : 以另外一個用戶身份執行命令或實現用戶之間切換 切換用戶的方式 : 不徹底切換 : 即暫時得到其餘用戶權限,但同時用戶當前用戶的權限,並不會讀取目標用戶的配置文件 su user_name 徹底切換 :即完全變成另一個用戶,取得另一個用戶的權限,但僅擁有另外一個用戶的權限,再也不擁有當前用戶的權限,會讀取目標用戶的權限 su - user_name 注 : root用戶切換到其餘用戶不須要密碼,但普通用戶切換到其餘用戶須要密碼 以其餘用戶身份執行命令 : su [-] -c 'COMMAND' 選項: -l : 登陸式切換,即徹底切換 ============================================================================================================================================ usermod : 修改用戶屬性 usermod [option]... user_name -u UID : 新的UID -g GID : 新的基本組 -G GROUP,... : 新的附加組,用戶原有的附加組將會覆蓋,若是要保留原有附加組,可符合選項-a一塊兒使用 -s SHELL : 新的默認shell -c 'COMMENT' : 新的用戶基本信息 -d DIRECTORY : 新的用戶家目錄,但僅使用該選項,系統並不會將用戶原目錄下的文件移至新的家目錄下,也不會爲用戶建立新的家目錄,但若要將用戶本來家目錄下的 文件移至新的家目錄下,需配合-m選項一塊兒使用 -e : 指定用戶帳戶的過時日期 -f : 指定用戶密碼的非活動期限 -l : 修改用戶登陸名 -L : 鎖定指定用戶 -U : 解鎖指定用戶 =================================================================================================================================================== 爲指定用戶添加或修改密碼 : passwd passwd user_name : 修改指定用戶的密碼,僅root權限 passwd : 修改用戶本身的密碼,不容許前提是用戶有密碼,不然用戶添加密碼或修改密碼 -l : 鎖定指定用戶 -u : 解鎖指定用戶 -n MIN_DAYS : 指定密碼的最小使用期限 -x MAX_DAYS ; 指定密碼的最大使用期限 -w WARN_DAYS : 指定密碼的警告期限 -i INACTIVE_DAYS : 指定密碼的非活動期限 --stdin : 從標準輸入接受用戶密碼,如echo 'passwd' | passwd --stdin user_name ====================================================================================================================================================== 刪除用戶 : userdel userdel [option]... user_name -r : 刪除用戶家目錄 =========================================================================================================================================================== 組屬性修改 : groupmod groupmod [option]... group_name -n : 指定新組名 -g GID : 執行新的組ID ====================================================================================================================================================== 組刪除 : groupdel groupdel GROUP =========================================================================================================================================================== 組密碼添加 :gpasswd 組密碼做用 : 當本用戶既非某組的基本組用戶,又非某組的附加組用戶,但有須要取得該組的權限時,此時須要組密碼,臨時成爲該組用戶 gpasswd GROUP : 添加或修改組密碼 -a USER : 將user添加至指定組 -d user : 從該組中刪除指定用戶 -A user1,user2,.... : 添加具備管理權限的用戶列表 ============================================================================================================================================ newgrp : 爲用戶臨時切換基本組 注 : 若是但前用戶不屬於該組,則須要組密碼 ============================================================================================================================================= pwck : 檢查密碼文件的完整性,即檢查用戶及其認證信息的完整性,檢查/etc/passwd,/etc/shadow格式是否正確,數據是否有效 ========================================================================================================================================== 修改用戶屬性 : chage chage [option]... login_name -d last_day : 修改用戶最近一次修改密碼的時間 -E expire_date : 修改用戶帳戶過時日期 -I inactive : 修改用戶密碼禁用期 -m min_days : 修改用戶密碼的最小使用期限 -M max_days : 修改用戶密碼的最大使用期限 -W warn_days : 修改用戶密碼的提醒警告期 ================================================================================================================================================= 其餘命令 : chfn ; 修改用戶的詳細信息(即家庭住址,電話號碼等信息) finger : 查看用戶的詳細信息 chsh ; 修改用戶的默認shell ================================================================================================================================================= 權限管理: 文件的權限主要針對三類用戶: 屬主 : owner,u 屬組 : group,g 其餘 : others,o 每一個文件對每一個用戶都定義了三種權限 : r : readable w : writable x : excutable 文件 : r : 可以使用文件查看類工具查看文件內容 w ; 可修改文件內容 x : 可將文件提交內核啓動爲一個進程,但爲避免文件被惡意利用,任何文件在建立時,都默認沒有執行權限 文件夾 : r : 可以使用ls命令查看此目錄中的文件列表 w : 可在此目錄中建立文件,也可在此目錄中刪除文件 x : 可以使用ls -l查看此目錄中的文件列表,也可以使用cd命令進入此目錄,默認建立目錄時,均有此權限 權限的另外表示方法 : r---w---x -> 100010001 -> 421 修改文件權限 : chmod chmod [option]... OCTAL_MODE(八進制) FILE... -R : 遞歸修改權限,當修改目錄權限時,目錄中文件的權限也會跟着一塊兒改變 chmod [option]... mode,... FILE... mode : 修改某一類用戶的權限 : u=r ug=rw u=r,g=w 注:沒有寫出的權限,均默認沒有該權限 修改某一類用戶的某一位權限 : u+r ug+r u+r,g+r 增長某用戶在某一位的權限 u-r ug-w u-x,g-x 去除某類用戶在某一位的權限 chmod [option]... --reference=RFILE FILE... 參考RFILE文件的權限,將FILE文件的權限修改的和RFILE文件的權限如出一轍 ================================================================================================================================================= 修改文件的屬主和屬組,僅root用戶權限 chown [option][:[GROUP]] FILE... 注: 命令中的「:」可用「.」替代 -R :遞歸修改文件的屬主 chown [option]... --reference=RFILE FILE,..... 參看RFILE修改FILE的屬主 =========================================================================================================================================== 修改文件的屬組 :chgrp chgrp [option]... GROUP FILE... chgrp [option]... --reference=RFILE FILE... -R : 遞歸修改文件的屬組 ======================================================================================================================================= 文件或目錄建立時的遮罩碼 : umask 注 : 遮罩碼用戶建立文件或文件夾時,爲文件或文件夾指定默認權限 FILE : 666 - umask 注 : 當某類用戶建立文件時,權限減得的結果中包含x權限,則結果加一,直至無x權限 DIR : 777 - umask umask : 查看umask的值 umask # : 修改umask的值,僅對當前用戶有效