linux用戶和權限管理

用戶

用戶的類別:

管理員:root

普通用戶:

系統用戶:僅用於運行服務程序;

登錄用戶:系統資源的正常使用者;

用戶標識:UserID, UID 

管理員:0

普通用戶:

系統用戶:

CentOS 5, 6: 1-499

CentOS 7: 1-999

普通用戶:

CentOS 5,6: 500+

CentOS 7: 1000+

名稱解析: username <--> UID 

解析庫:/etc/passwd:用戶名、UID及其它屬性信息解析庫; 

wKioL1blEQLwViyPAABr0oeaj9g960.jpg

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


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:用戶主目錄中的文件將隨用戶主目錄和用戶郵箱一起刪除



用戶組

用戶組的類別:

管理員組:

普通用戶組:

系統組

登錄組

組標識:GroupID, GroupID

管理員組:0

普通用戶組:

系統組:

CentOS 5,6: 1-499

CentOS 7: 1-999

登錄組:

CentOS 5,6: 500+

CentOS 7: 1000+

名稱解析:groupname <--> gid 

解析庫:/etc/group

wKioL1blGfizBeP4AABtescLCc4861.jpg

組類別:以用戶爲核心

用戶的主組:基本組;

用戶的附加組:額外組;

組類別:根據組內容納的用戶來劃分

私有組:與用戶名相同,且只有一個此用戶;

公共組:組內包含了多個用戶;

groupadd命令:添加組

groupadd  [選項]  group

-g  GID:指明GID;

-r, --system:系統組;

groupmod命令:修改組信息

groupmod [選項] GROUP

-g  GID 

-n NEW_NAME:修改組名;

groupdel命令:刪除組

groupdel [選項] GROUP

認證

認證機制:驗正用戶的確是他所聲稱的人;

通過對比事先存儲的,與登錄時所提供的信息是否一致;

存儲於何處:

用戶的認證信息庫:/etc/shadow

組的認證信息庫:/etc/gshadow

影子口令文件:/etc/shadow

wKiom1blKg_Bufr5AACelWsRPKI088.jpg

密碼:加密存放,使用單向加密機制;

單向加密:僅能加密,不能解密;提取數據特徵碼;

算法:

1:md5: message digest, 128bits

2:sha1: secure hash algorithm, 160bits

3:sha224

4:sha256

5:sha384

6:sha512

添加salt:取隨機數;

隨機數:

熵池:

/dev/random:僅從熵池返回隨機數,隨機數耗盡時會阻塞進程;

僞隨機數:軟件模擬產生;

/dev/urandom:先從熵池返回隨機數,熵池耗盡時,則從僞隨機數生成器返回隨機數;

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


gpasswd命令:爲組添加密碼

組密碼文件:/etc/gshadow

gpasswd [選項] group

-a USERNAME:把用戶添加至組中;

-d USERNAME:從此組中移除此用戶;


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切換至任何其它用戶無須認證密碼;普通用戶切換至其它用戶,都需要密碼;


權限管理:

文件:

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

ownership: 僅管理員有權限 

改屬主:chown

改屬組:chgrp

mode(permission):僅屬主


chmod命令:

作用:change file mode bits

chmod [OPTION]... MODE[,MODE]... FILE...

chmod [OPTION]... OCTAL-MODE FILE...

chmod [OPTION]... --reference=RFILE FILE...

MODE:

賦權表示法:直接操作一類用戶的所有權限位rwx;

u=

g=

o=

a=

兩類用戶權限相同:ug=, go=

不同類的用戶權限不同:u=,g=,o=

授權表示法:操作一類用戶一位或多位權限;

u+, u-

g+, g-

o+, o-

a+, a-

兩類用戶權限收授機制相同:ug+, ug-, ...

不同類的用戶權限不同:u+,g+,o+

常用選項:

-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進程有效;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章