歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> 學習Linux >> CentOS用戶和組的基礎概念和基本命令

CentOS用戶和組的基礎概念和基本命令

日期:2017/3/6 9:15:41   编辑:學習Linux

CentOS用戶和組的基礎概念和基本命令


CentOS用戶和組的基礎概念和基本命令


用戶組:
組類別:
管理員組
普通用戶組
系統組
登錄組

組標識:GroupID, GroupID

(普通用戶1-65536)

管理員組: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:用戶 ID 的數字值。此值必須為唯一的,除非使用了 -o 選項。此值必須非負,默認使用大於等於UID_MIN,且大於任何其他用戶 ID 最小值。

注意:創建登錄用戶時,為其自定義的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:從此組中移除此用戶;

http://xxxxxx/Linuxjc/1155965.html TechArticle

Copyright © Linux教程網 All Rights Reserved