CentOS使用者和組的基礎概念和基本命令
使用者組:
組類別:
Administrator 群組
普通使用者組
系統組
登入組
組標識:GroupID, GroupID
(普通使用者1-65536)
Administrator 群組: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:取隨機數;操作添加centos和gentoo使用者,密碼都是123456,但是在/etc/shadow顯示的密碼資訊卻是不一樣的,是因為在計算的時候加 了salt.防止一樣帶來的不安全風險
隨機數:
熵池:
偽隨機數:軟體類比產生;
/dev/random:僅從熵池返回隨機數,隨機數耗盡時會阻塞進程;
/dev/urandom:先從熵池返回隨機數,熵池耗盡時,則從偽隨機數產生器返回隨機數;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
使用者資訊庫 /etc/passwd
hehe:使用者名稱
x:可以密碼 ,影子口令,也可以為預留位置,早些時候在這裡存放,現在放在/etc/shadow
501:使用者ID,UID
501:使用者組ID,GID。使用者所屬的主組的ID號
/home/hehe : 使用者家目錄
/bin/bash :使用者登入時預設的shell
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
安全上下文:
進程:以某個使用者的身份運行,進程對資源的操作許可權取決於它所代表的使用者;
檔案:許可權模型
屬主:owner
屬組:group
其它:other
許可權模型生效的機制:
進程的運行者:
是否與檔案的屬主相同,如果是,則以檔案屬主的身份來訪問此檔案;否則
是否屬於檔案的屬組,如果是,則以檔案屬組的身份來訪問此檔案;否則
以檔案的其它使用者的身份來訪問此檔案;
使用者和組的管理:
主要以命令進行:
組:groupadd, groupmod, groupdel
使用者:useradd, usermod, userdel
認證:passwd
組解析庫檔案:/etc/group
GRPNAME:x:GID:user1, user2, ...
組名:密碼點位符:GID:以此組為附加組的使用者列表,以逗號分隔
groupadd命令:添加組
groupadd [選項] group
-g GID:指明GID;
-r, --system:系統組;
groupmod命令:修改組資訊
groupmod [選項] GROUP
-g GID
-n NEW_NAME:修改組名;
groupdel命令:刪除群組
groupdel [選項] GROUP
使用者解析庫:/etc/passwd
name:password:UID:GID:GECOS:directory:shell
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:使用者識別碼 的數字值。此值必須為唯一的,除非使用了 -o 選項。此值必須非負,預設使用大於等於UID_MIN,且大於任何其他使用者識別碼 最小值。
注意:建立登入使用者時,為其自訂的shell程式必須為可登入shell,且要位於/etc/shells檔案中;
useradd -D:顯示建立使用者時的預設設定;
useradd -D 選項:設定某預設選項;
GROUP=100 :建立使用者時要不要添加一個使用者同名的私人組
HOME=/home :使用者建立時尤其是不是系統組的時候要不要建立家目錄,如果建立的話家目錄所在的位置
INACTIVE=-1:非活動期限為禁用 -1
EXPIRE=:到期期限為 沒有時間表示永不到期
SHELL=/bin/bash:預設shell
SKEL=/etc/skel:從哪裡去複製使用者的骨架資訊
CREATE_MAIL_SPOOL=yes:沒建立一個使用者,在var/spool設定一個郵筒
-e, --expiredate EXPIRE_DATE:使用者帳號的到期期限;到期後會被鎖定;日期以 YYYY-MM-DD 格式指定
-f, --inactive INACTIVE:密碼到期後,賬戶被徹底禁用之前的天數。0 表示立即禁用,-1 表示禁用這個功能。
為使用者提供預設配置的設定檔:
/etc/login.defs, /etc/default/useradd
影子口令檔案:/etc/shadow
登入名稱:密碼:最近一次的修改時間:密碼的最短使用到期日:密碼最長使用到期日:提前警告的天數:非活動期限:帳號的禁用日期:保留欄位
密碼:$密碼編譯演算法$salt$加密的密碼字串
usermod命令:修改帳號資訊
-c, --comment COMMENT
-d, --home HOME_DIR:修改家目錄為新的位置,但一般應該同時使用-m選項以保證原家目錄中的檔案會移動到新目錄中;
-g, --gid GROUP
-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有此許可權;
密碼複雜度:
(1) 不能少於8個字元;
(2) 不能使用與過去的密碼太相似的密碼;
(3) 應該使用四類字元中的至少三類;
選項:
-l:鎖定密碼
-u:解鎖解密
-d:清除密碼
--stdin:從標準輸入接收密碼;
echo "PASSWORD" | passwd --stdin USERNAME
id命令:查看使用者相關的id資訊;
id [OPTION]... [USER]
-u:僅查看uid
-g:僅查看gid
-G:查看所屬的所有組的ID;
-n:顯示名稱,而非ID;
su命令:switch user
切換使用者時:
(1) 不讀取目標使用者的設定檔(非登入式切換,半切換);
su USERNAME
(2) 讀取目標使用者的設定檔(登入式切換,完全切換);
su -l USEcRNAME
su - USERNAME
-c command, --command=command:僅以指定的使用者的身份運行此處指定的命令,而不執行真正的身份切換操作;
注意:root切換至任何其它使用者無須認證密碼;普通使用者切換至其它使用者,都要求輸入密碼;
gpasswd命令:為組添加密碼
組密碼檔案:/etc/gshadow
gpasswd [選項] group
-a USERNAME:把使用者添加至組中;
-d USERNAME:從此組中移除此使用者;