五、使用者身份與能力
管理者UID為0:系統的管理者使用者
系統使用者UID為1-999
普通使用者UID從1000開始:是由管理者建立的用于日常工作的使用者
使用者組:把多個使用者加入到同一個組中,進而友善為組中的使用者統一規劃權限或指定任務
在Linux系統中建立每個使用者時,将自動建立一個與其同名的基本使用者組,而且這個基本使用者組隻有該使用者一個人。如果該使用者以後被歸納入其他使用者組,則這個其他使用者組稱之為擴充使用者組。一個使用者隻有一個基本使用者組,但是可以有多個擴充使用者組。
- useradd [選項] 使用者名:建立使用者,預設的使用者家目錄會被存放在/home目錄中,預設的shell解釋器為/bin/bash。
-d 指定使用者的家目錄
-e 賬戶的到期時間 格式為 yyyy-mm-dd
-u 指定使用者的預設UID
-g 指定一個初始的基本使用者組(必須已經存在)
-G 指定一個或多個擴充使用者組
-N 不建立與使用者名同名的基本使用者組
-s 指定該使用者預設shell解釋器
指定家目錄的路徑、使用者的UID以及shell解釋器
useradd -d /home/liux -u 8888 -s /sbin/nologin linuxprobe
- groupadd [選項] 群組名:建立使用者組 groupadd ronny
- usermod [選項] 使用者名:修改使用者的屬性(!注:linux系統中的一切都是檔案,是以可以修改儲存資訊的/etc/passwd 檔案,也可以用usermod修改)
-c 填寫使用者賬号的備注資訊
-d -m 可以重新指定使用者的家目錄并自動把舊的資料轉移過去
-e 使用者的到期時間
-g 變更所屬使用者組
-G 變更擴充使用者組
-L 鎖定使用者禁止其登入系統
-U 解鎖使用者,允許登入
-s 變更預設中端
-u 修改使用者的UID
其中-d -m可以在家目錄因為某種錯誤操作(比如删除掉其中的某個檔案夾或者應用軟體)不能使用時使用此指令重指定家目錄,然将原先的舊資料同時轉移過去
- passwd [選項] 使用者名:修改使用者密碼、過期時間、認證資訊等。普通使用者隻能通過passwd修改自己的密碼并要求知道舊密碼,而root管理者則可以修改任意人的密碼且不需要知道其密碼
-l 鎖定使用者,禁止其登入
-u 解除鎖定
--stdin 允許通過标準輸入修改使用者密碼,如echo "New PassWord" | passwd --stdin Username
-d 使該使用者可以用空密碼登入系統
-e 強制使用者在下次登入時修改密碼
-S 顯示使用者的密碼是否被鎖定,以及密碼所采用的的加密算法名稱
- userdel [選項] 使用者名:删除使用者,删除使用者後其家目錄會被儲存下來,可以使用-r指令删除
-f 強制删除使用者
-r 同時删除使用者及其家目錄
- 檔案權限與歸屬
linu系統中一切都是檔案,但是也有所不同:
-:普通檔案
-d:目錄檔案
-l:鍊式檔案
-b:塊裝置檔案
-c:字元裝置檔案
-p:管道檔案
- 對于檔案來說:
可讀(r 4):能夠讀取檔案的實際内容
可寫(w 2):能夠編輯、新增、修改、删除檔案的實際内容
可執行(x 1):能夠運作一個腳本語言
對于目錄檔案而言:
可讀(r 4):能夠讀取到目錄内的檔案清單
可寫(w 2):能夠在目錄内新增、删除、重命名檔案
可執行(x 1):能夠進入目錄.
rwx可以分别用數字4、2、1來表示
764表示為4+2+1 4+2 4即:rwxrw-r--,代表該檔案的所屬者可讀可寫可執行、所屬組可讀可寫、陌生人隻可讀.同理642表示為rw--w--wx(!一般三個數都是按從大到小排列)
- 檔案的特殊權限
SUID:對二進制程式進行設定的特殊權限,可以讓二進制程式的執行者臨時擁有屬主的權限僅對擁有執行權限的二進制程式有效),即x位将會變為s,如果沒有執行權限即wr-,将會變為S
SGID: ①讓執行者臨時擁有屬組的權限(對擁有執行權限的二進制程式進行設定)
②在某個目錄中建立的檔案自動繼承該目錄的使用者組(隻可以對目錄進行設定)
chomd [參數] 權限 檔案或者目錄名稱:修改權限,如:
chomd +w test.txt :所有的使用者都會有w權限
chomd -w test.txt :所有失去w權限
chomd g+w test.txt :所屬組有w權限
chomd 777 test.txt :所有人對這個檔案或者目錄檔案都有讀寫執行權限
SBIT:除非是該目錄或檔案的所有者,否則無法删除這檔案
- 檔案的隐藏屬性:
chattr [參數] 檔案:設定檔案的隐藏權限,如果想把某個隐藏功能添加到檔案上,則需要在指令後面追加“+參數”,如果想要從檔案移出耨個隐藏功能,則追加“-參數”
i 無法對檔案進行修改;若對目錄設定了該參數,則隻能修改子檔案的内容而不能建立或者删除檔案
a 僅允許補充(追加)内容,無法覆寫/删除内容
S 檔案内容在變更後立即同步到硬碟
s 徹底從硬碟中删除,不可恢複(用0填充檔案所在硬碟區域)
A 不在修改這個檔案或目錄的最後通路時間
b 不在修改檔案或者目錄的存取時間
D 檢查壓縮檔案的錯誤
d 使用dump指令備份時忽略本檔案/目錄
c 預設将檔案或目錄進行壓縮
u 當删除該檔案後依然保留其在硬碟的資料,友善日後恢複
t 讓檔案系統支援尾部合并
X 可以直接通路壓縮檔案中的内容
建立普通檔案的一個方法:echo "new text" > linuxprobe 。自動建立檔案linxuprobe并且寫入new text内容
另一個方法是使用vim來進行實作
- lsattr [參數] 檔案:顯示檔案的隐藏權限,Linux中隐藏權限必須使用lsattr,不能使用ls之類的來實作
- su:切換使用者身份,從root管理者切換到普通使用者時不需要密碼驗證,反之需要驗證root管理者密碼
- su - 使用者名:完全切換到新使用者,将環境變量使用為新的使用者的環境變量,并且不保留原先的使用者的環境變量
- sudo [參數] 指令名稱:給普通使用者提供額外的權限來完成root管理者才能完成的任務