1. 程式人生 > >使用者身份與檔案許可權

使用者身份與檔案許可權

使用者身份

UID(User Identification):每個使用者都有對應的UID值

超級使用者 UID0:root 使用者預設為0
系統使用者 UID1-999:系統中系統服務由不同使用者執行,更加安全,預設被限制登陸系統
普通使用者UID1000~:即管理員建立的用於日常工作而不能管理系統的普通使用者

注意UID一定是不能衝突的,管理員建立的普通使用者UID從1000開始(即便前面有閒置的號碼)

GID(Group Identification):可將多個使用者加入一個組中,方便指派任務或工作

/etc/passwd:儲存賬戶名稱
/etc/shadow:儲存賬戶密碼
/etc/group:儲存使用者組名稱和GID

*每個使用者在被建立的時候會被建立一個預設組(GID和UID相同,俗稱基本組),而後加入的稱為擴充套件組組。

useradd命令用於建立新的使用者,格式為:“useradd [選項] 使用者名稱”

-d :指定使用者的家目錄(預設為/home/username)
-D :展示預設值
-e :帳號有效截至日期,格式:YYYY-MM-DD.
-g :指定一個初始使用者組(必須已存在)
-G :指定一個或多個擴充套件使用者組
-N :不建立與使用者同名的使用者組
-s :指定預設的Shell
-u :指定使用者的UID

passwd命令用於修改使用者的密碼,格式為:“passwd [選項] [使用者名稱]”

修改當前使用者的密碼:passwd
修改其他使用者的密碼:passwd 其他使用者名稱
-l:鎖定使用者禁止其登陸
-u:解除鎖定,允許使用者登陸。
–stdin:允許從標準輸入修改使用者密碼,如(echo “NewPassWord” | passwd –stdin Username)
-d:使帳號無密碼
-e:強制使用者下次登陸時修改密碼
-S:顯示使用者的密碼狀態

userdel命令用於刪除使用者所有表格,格式為:“userdel [選項] 使用者名稱”

-f:強制刪除使用者,家目錄與其相關檔案
-r:同時刪除使用者,家目錄與其相關檔案

usermod命令用於修改使用者的屬性,格式為“usermod [選項] 使用者名稱”

-c:填寫帳號的備註資訊
-d -m:-m與-d連用。可重新指定使用者的家目錄並自動舊的資料轉移過去。
-e:帳戶到期時間,格式“YYYY-MM-DD”
-g:變更所屬使用者組
-G:變更擴充套件使用者組
-L:鎖定使用者禁止其登陸系統
-U:解鎖使用者,允許其登陸系統
-s:變更預設終端
-u:修改使用者的UID

userdel命令用於刪除使用者所有表格,格式為:“userdel [選項] 使用者名稱”

-f:強制刪除使用者,家目錄與其相關檔案
-r:同時刪除使用者,家目錄與其相關檔案

usermod命令用於修改使用者的屬性,格式為“usermod [選項] 使用者名稱”

-c:填寫帳號的備註資訊
-d -m:-m與-d連用,可重新指定使用者的家目錄並自動舊的資料轉移過去。
-e:帳戶到期時間,格式“YYYY-MM-DD”
-g:變更所屬使用者組
-G:變更擴充套件使用者組
-L:鎖定使用者禁止其登陸系統
-U:解鎖使用者,允許其登陸系統
-s:變更預設終端
-u:修改使用者的UID

groupadd命令用於建立群組,格式為:”groupadd [選項] 群組名”

檔案許可權

Linux系統中一切都是檔案,檔案和目錄的所屬與許可權——來分別規定所有者、所有組、其餘人的讀,寫,執行許可權。
讀(read),寫(write),執行(execute)簡寫即為(r,w,x),亦可用數字(4,2,1)表示

-:普通檔案,d:目錄檔案,l:連結檔案,b:塊裝置檔案,c:字元裝置檔案,p:管道檔案

普通檔案(實際儲存資料的地方,其並不具備刪除自身的許可權):

r:可讀取檔案的實際內容
w:可編輯/新增/修改該檔案的實際內容
x:可執行

目錄檔案(儲存有目錄結構和檔案許可權):

r:可讀取目錄結構和許可權
w:課更改目錄結構列表,新建/刪除/重新命名/轉移子檔案或目錄
x:使用者可以進入該目錄

檔案的特殊許可權

1. SUID:讓執行者臨時擁有屬主的許可權(僅對擁有執行許可權的二進位制程式有效)
2. SGID:

功能一:讓執行者臨時擁有屬組的許可權(對擁有執行許可權的二進位制程式設定)
功能二:在該目錄中建立的檔案自動繼承此目錄的使用者組(只可以對目錄設定)

3. SBIT(Sticky Bit):只可管理自己的資料而不能刪除他人檔案(僅對目錄有效)

修改檔案和目錄許可權和所有者所有組的命令:

chmod命令用於修改檔案或目錄的許可權,格式為:”chmod [引數] 許可權 檔案或目錄名稱”
chown命令用於修改檔案或目錄的所屬主與所屬組,格式為:“chown [引數] 所屬主:所屬組 檔案或目錄名稱”

chmod與chown的命令引數——對於檔案不加引數,遇到目錄加大寫-R(遞迴,修改目錄內所有檔案的屬性)。

4:SUID (U+S)
2:SGID (G+S)
1:SBIT

在原先777前加上需要修改的數字,如:chmod 4777 test ls -l -rwsrwxrwx

chattr(change attribute)命令 用於設定檔案的隱藏屬性,格式: chattr [引數] 檔案

i:將無法對檔案進行修改,若對目錄設定後則僅能修改子檔案而不能新建或刪除
a:僅允許補充(追加)內容.無法覆蓋/刪除(Append Only)
S:檔案內容變更後立即同步到硬碟(sync)
s:徹底從硬碟中刪除,不可恢復(用0填充原檔案所在硬碟區域)
A:不再修改這個檔案的最後訪問時間(atime)
b:不再修改檔案或目錄的存取時間
D:檢查壓縮檔案中的錯誤
d:當使用dump命令備份時忽略本檔案/目錄
c:預設將檔案或目錄進行壓縮
u:當刪除此檔案後依然保留其在硬碟中的資料,方便日後恢復
t:讓檔案系統支援尾部合併(tail-merging)
X:可以直接訪問壓縮檔案的內容

lsattr命令 用於顯示檔案的隱藏許可權,格式:lsattr [引數] 檔案

a:顯示所有檔案和目錄
l:顯示隱藏屬性的全稱(預設簡寫成一個字母)
R:遞迴處理,將指定目錄下的所有檔案及子目錄一併處理
d:若目標檔案為目錄,請加此引數

su命令 用於變更使用者的身份,格式:su [-] 使用者名稱(需要將環境變數改變為新使用者時新增引數-)

sudo命令 用於給普通使用者提供額外權利來完成原本屬於超級使用者才能完成的任務,格式:sudo [引數] 命令名稱

-h:列出幫助資訊
-l:列出當前使用者可執行的命令
-u:使用者名稱或UID值 以指定的使用者身份執行命令
-k:清空安全時間,下次執行sudo時需要再次密碼驗證
-b:在後臺執行指定的命令
-p:更改詢問密碼的提示語

sudo的特色功能

1:限制使用者執行指定的命令
2:記錄使用者執行的每一條命令
3:配置檔案(/etc/sudoers)提供集中的管理使用者、許可權與主機等引數
4:驗證過密碼後5分鐘(預設值)內無須再讓使用者驗證密碼,更加的方便

檔案訪問控制列表

ACL設定指定有點特定使用者或使用者組隊某個檔案的操作許可權*

setfacl命令 用於增加或者修改ACL規則,格式:setfacl [引數] 檔案

-R:遞迴(對目錄使用)
-m:設定檔案的acl規則
-b:刪除acl規則

getfacl命令 用於顯示檔案的ACL規則,格式:getfacl 檔案