Linux的用戶與權限管理
一、Linux的用戶管理
Linux用戶簡單的分爲:
(一)管理員:root
(二)普通用戶又分爲兩種:
系統用戶:僅用於運行服務程序;
登錄用戶:系統資源的正常使用者;
可以查看/etc/passwd來查看。如下圖所示:
用戶標識:UserID, UID ,共65535個;
管理員(root):0
系統用戶:
CentOS 5, 6: 1-499
CentOS 7: 1-999
普通用戶:
CentOS 5,6: 500+
CentOS 7: 1000+
常用命令:useradd,usermod,userdel.
(一)useradd
功能說明:建立用戶帳號。
參 數:
-c<備註> 加上備註文字。備註文字會保存在passwd的備註欄位中。
-d<登入目錄> 指定用戶登入時的啓始目錄。
-D 變更預設值.
-e<有效期限> 指定帳號的有效期限。
-f<緩衝天數> 指定在密碼過期後多少天即關閉該帳號。
-g<羣組> 指定用戶所屬的羣組。
-G<羣組> 指定用戶所屬的附加羣組。
-m 自動建立用戶的登入目錄。
-M 不要自動建立用戶的登入目錄。
-n 取消建立以用戶名稱爲名的羣組.
-r 建立系統帳號。
-s<shell> 指定用戶登入後所使用的shell。
-u<uid> 指定用戶ID。
#創建用戶Tom,uid爲 5000,默認shell爲/bin/tcsh,基於註釋信息爲"Hello",如圖所示:
(二)usermod
功能說明:修改用戶帳號。
參 數:
-c<備註> 修改用戶帳號的備註文字。
-d登入目錄> 修改用戶登入時的目錄。
-e<有效期限> 修改帳號的有效期限。
-f<緩衝天數> 修改在密碼過期後多少天即關閉該帳號。
-g<羣組> 修改用戶所屬的羣組。
-G<羣組> 修改用戶所屬的附加羣組。
-l<帳號名稱> 修改用戶帳號名稱。
-L 鎖定用戶密碼,使密碼無效。
-s<shell> 修改用戶登入後所使用的shell。
-u<uid> 修改用戶ID。
-U 解除密碼鎖定。
(三)userdel
功能說明:刪除用戶帳號。
參 數:
userdel -r[用戶帳號]
-f 刪除用戶登入目錄以及目錄中所有文件。
如圖,刪除用戶Tom:
passwd命令詳情:
功能說明:設置密碼。
補充說明:passwd指令讓用戶可以更改自己的密碼,而系統管理者則能用它管理系統用戶的密碼。只有管理者可以指定用戶名稱,一般用戶只能變更自己的密碼。
(1) passwd:修改自己的密碼;
(2) passwd username:修改其它用戶的密碼,僅root有此權限;
參 數:
-d 刪除密碼。本參數僅有系統管理者才能使用。
-f 強制執行。
-k 設置只有在密碼過期失效後,方能更新。
-l 鎖住密碼。
-s 列出密碼的相關信息。本參數僅有系統管理者才能使用。
-u 解開已上鎖的帳號。
--stdin:從標準輸入接收密碼;
echo "PASSWORD" | passwd --stdin USERNAME
如下圖:
su(super user)
功能說明:變更用戶身份。
切換用戶時:
(1) 不讀取目標用戶的配置文件(非登錄式切換,半切換);
su USERNAME
(2) 讀取目標用戶的配置文件(登錄式切換,完全切換);
su -l USERNAME
su - USERNAME
注意:root切換至任何其它用戶無須認證密碼;普通用戶切換至其它用戶,都需要密碼;
如下圖:
組的管理:
主要以命令進行:
組:groupadd, groupmod, groupdel
用戶:useradd, usermod, userdel
組解析庫文件:/etc/group
GRPNAME:x:GID:user1, user2, ...
組名:密碼點位符:GID:以此組爲附加組的用戶列表,以逗號分隔
groupadd命令:添加組
groupadd [選項] group
-g GID:指明GID;
-r, --system:系統組;
roupmod命令:修改組信息
groupmod [選項] GROUP
-g GID
-n NEW_NAME:修改組名;
groupdel命令:刪除組
groupdel [選項] GROUP
gpasswd命令:爲組添加密碼
組密碼文件:/etc/gshadow
gpasswd [選項] group
-a USERNAME:把用戶添加至組中;
-d USERNAME:從此組中移除此用戶;
二、Linux文件和目錄的權限管理
利用 ll -a 命令 查看文件和目錄 的權限
這是目錄的 權限!第一行標有d 的爲 目錄文件。
這是文件的 權限!而且他還是是 普通文件!
文件系統文件權限:
rwxrwxrwx:
owner: rwx
group: rwx
other: rwx
三類用戶:
屬主: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至此目錄中;
權限組合機制:
以owner爲例:
--- 0000
--x0011
-w-0102
-wx0113
r--1004
r-x1015
rw-1106
rwx 1117
默認目錄的 權限 爲 755,默認文件的 權限 爲 644 。
默認目錄和文件的權限 和 umask 有關 。
umask:顯示或設定文件模式掩碼
文件:
666-umask
目錄:
777-umask
注意:之所以文件用666去減,表示文件默認不能有執行權限;如果減得的結果中,u,g或o有執行權限時,則需要加1;
顯示:umask
設定:
umask MASK
注意:此設定僅對當前shell進程有效;
Linux文件和目錄的權限管理常用命令:chmod ,chown ,chgrp
chmod(change mode)
功能說明:變更文件或目錄的權限。
補充說明:在UNIX系統家族裏,文件或目錄權限的控制分別以讀取,寫入,執行3種一般權限來區分,另有3種特殊權限可供運用,再搭配擁有者與所屬羣組管理權限範圍。您可以使用chmod指令去變更文件與目錄的權限,設置方式採用文字或數字代號皆可。符號連接的權限無法變更,如果您對符號連接修改權限,其改變會作用在被連接的原始文件。
參 數:
-c或--changes 效果類似"-v"參數,但僅回報更改的部分。
-f或--quiet或--silent 不顯示錯誤信息。
-R或--recursive 遞歸處理,將指定目錄下的所有文件及子目錄一併處理。
-v或--verbose 顯示指令執行過程。
--help 在線幫助。
--reference=<參考文件或目錄> 把指定文件或目錄的權限全部設成和參考文件或目錄的權限相同
賦權表示法:直接操作一類用戶的所有權限位rwx;
u=
g=
o=
a=
兩類用戶權限相同:ug=, go=
不同類的用戶權限不同:u=,g=,o=
授權表示法:操作一類用戶一位或多位權限;
u+, u-
g+, g-
o+, o-
a+, a-
兩類用戶權限收授機制相同:ug+, ug-, ...
不同類的用戶權限不同:u+,g+,o+
chown(change owner)
功能說明:變更文件或目錄的擁有者或所屬羣組。
參 數:
-c或--changes 效果類似"-v"參數,但僅回報更改的部分。
-f或--quite或--silent 不顯示錯誤信息。
-h或--no-dereference 之對符號連接的文件作修改,而不更動其他任何相關文件。
-R或--recursive 遞歸處理,將指定目錄下的所有文件及子目錄一併處理。
-v或--version 顯示指令執行過程。
--dereference 效果和"-h"參數相同。
--help 在線幫助。
--reference=<參考文件或目錄> 把指定文件或目錄的擁有者與所屬羣組全部設成和參考文件或目 錄的擁有者與所屬羣組相同。
chgrp(change group)
功能說明:變更文件或目錄的所屬羣組。
語 法:chgrp [-cfhRv][--help][--version][所屬羣組][文件或目錄...]
參 數:
-c或--changes 效果類似"-v"參數,但僅回報更改的部分。
-f或--quiet或--silent 不顯示錯誤信息。
-h或--no-dereference 只對符號連接的文件作修改,而不更動其他任何相關文件。
-R或--recursive 遞歸處理,將指定目錄下的所有文件及子目錄一併處理。
--reference=<參考文件或目錄>