目錄
用戶權限
超級用戶與普通用戶的區別
超級用戶(root):
普通用戶:
切換用戶身份
使用sudo執行高權限命令
用戶管理
用戶組管理
文件權限
文件訪問者類別
基本權限
權限表示方法
權限修改
chmod
chown
chgrp
umask
粘滯位
一些提示
本博客我們要了解用戶權限和文件的權限
用戶權限
Linux下有兩種??:超級??(root)、普通??。普通??:在linux下做有限的事情。超級??:可以再linux系統下做任何事情,不受限制超級??的命令提?符是“#”,普通??的命令提?符是“$”。
超級用戶與普通用戶的區別
在Linux系統中,用戶主要分為兩類:超級用戶(root)和普通用戶。它們在系統權限和操作范圍上有顯著差異。
超級用戶(root):
- 擁有系統的最高權限,可以執行任何操作,包括修改系統文件、安裝軟件、管理用戶等。
- 命令提示符通常以“#”結尾,表示當前用戶為超級用戶。
- 由于權限過高,建議僅在必要時使用root賬戶,以避免誤操作導致系統損壞。因此平時我們就用普通用戶來對linux進行操作,避免出現 rm -rf /這種巨大錯誤
普通用戶:
- 權限受限,只能執行與自身相關的操作,如管理個人文件、運行普通程序等。
- 無法直接修改系統文件或執行需要高權限的操作。
- 命令提示符通常以“$”結尾,表示當前用戶為普通用戶。
切換用戶身份
在Linux系統中,可以通過以下命令在超級用戶和普通用戶之間切換:
從普通用戶切換到超級用戶:
su -
輸入該命令后,系統會提示輸入root用戶的密碼,驗證成功后即可切換到root用戶。
從超級用戶切換回普通用戶:
exit
輸入該命令后,系統會退出root用戶,返回到之前的普通用戶身份。
使用sudo執行高權限命令
為了避免頻繁切換用戶,普通用戶可以使用sudo
命令臨時獲取超級用戶權限來執行特定命令。例如:
sudo apt-get update
該命令會提示輸入當前用戶的密碼,驗證成功后以root權限執行apt-get update
。
用戶管理
創建新用戶:
sudo adduser username
該命令會創建一個新用戶,并提示設置密碼和其他信息。
創建好后我們就可以用普通用戶來操作linux了
刪除用戶:
sudo deluser username
該命令會刪除指定用戶及其主目錄。
修改用戶密碼:
sudo passwd username
該命令允許超級用戶為指定用戶修改密碼。
用戶組管理
我們只設置超級用戶root和普通用戶兩個權限是否夠用呢?答案是夠用的,但是用著不舒服,如果我們要給一些用戶一些權限,那么就要給這些用戶一個一個分配,到時候又要一個一個取消。十分麻煩,因此就有了用戶組來統一管理權限
一個用戶有一個主組和多個附屬組,一個用戶加入到另一個組里后,這個組就是這個用戶的附屬組
一個用戶被創建的時候,會默認給這個用戶生成一個主組,主組的名字就是用戶名。
為了方便理解,我用團體來類比,每個人都是一個團體,這個團體就叫主體(主組)。然后可以歸屬其他團體,歸屬后就會以團體身份操作對方資源。
通過文件屬性查看,第一個dgj是這個文件所屬者,即誰創建它的;第二個dgj是這個文件的創建者的所屬組,因為dgj的主組是dgj,所以所屬組默認就是dgj了。
通過給出所屬組,相當于創建者背后的團體成員,就可以進行權限的區別對待了。
主組是可以修改的,但是不建議這樣。感興趣這可以查閱資料
將用戶添加到用戶組:
sudo usermod -aG groupname username
該命令將指定用戶添加到指定用戶組中。
例如 sudo usermod -aG? A B
那么B用戶就進入A用戶的主組了,
創建新用戶組:
sudo addgroup groupname
該命令會創建一個新的用戶組。這個組不是任何用戶的主組,因此要通過修改主組的命令給它分配用戶
刪除用戶組:
sudo delgroup groupname
該命令會刪除指定的用戶組。
通過以上方法,可以有效地管理Linux系統中的用戶和權限,確保系統的安全性和穩定性。
至于在哪體現用戶組和普通用戶權限區別,具體在文件權限來看
文件權限
首先我們了解一下文件的類型
我們看每個文件屬性最前面的一個字母就是描述的文件類型
d:文件夾? ? ?-:普通文件? ?
l:?軟鏈接? ? ? b:快設備文件(如硬盤)
p:管道文件 c:字符設備文件
s:套接口文件
可以使用file命令 來顯示當前文件是什么類型
文件訪問者類別
- 文件和文件目錄所有者
- 文件和文件目錄所有者所在的組的用戶
- 其他用戶
基本權限
- 讀:Read對?件??,具有讀取?件內容的權限;對?錄來說,具有瀏覽該?錄信息
的權限,即能不能用 ls 查看
- 寫:Write對?件??,具有修改?件內容的權限;對?錄來說具有刪除或創建?錄內
?件的權限,即能不能用rm或者rmdir 和 touch或者mkdir
- 執行:execute對?件??,具有執??件的權限;對?錄來說,具有進??錄的權
限,即能不能用 cd 命令進入
-
-:表示沒有這個權限,下圖可以看出
上圖的九項就是權限的描述,分別是讀寫執行重復三次,為什么要出復三次呢?
這是描述所有者,所屬組,其他用戶的權限說明,每個類型都有三個權限來描述分別是讀寫執行。
通過這九項三大類,就可以把文件權限管理的十分恰當,但也有不足,后面說
權限表示方法
_ _ _? ?_ _ _? ?_ _ _三類分別看,每個_有兩個情況,因此有2^3=8種,所以我們可以用三位八進制來簡潔表示我們的權限。
例如 rw__wx___ 就是110 011 000就是630
一個文件創建后的默認權限是666,一個目錄創建的默認權限是777
權限修改
一個文件的修改權一般只能是文件所有者或者root
chmod
功能:設置?件的訪問權限
格式:chmod [參數] 權限 ?件名 常?選項:
? R -> 遞歸修改?錄?件的權限
? 說明:只有?件的擁有者和root才可以改變?件的權限
chmod命令權限值的格式:
1 ??表?符+/-=權限字符
? +:向權限范圍增加權限代號所表?的權限
? -:向權限范圍取消權限代號所表?的權限
? =:向權限范圍賦予權限代號所表?的權限
? ??符號:
? u:擁有者
? g:擁有者同組?
? o:其它??
? a:所有??
? 實例:
? chmod u+w /home/abc.txt
? chmod o-x /home/abc.txt
? chmod a=x /home/abc.txt
2 三位8進制數字
? 實例:
? chmod 664 /home/abc.txt
? chmod 640 /home/abc.txt
chown
修改一個文件的所有者
格式:chown [參數] ??名 ?件名
-R 遞歸修改?件或?錄的所屬者
chgrp
修改一個文件的所屬組
-R 遞歸修改?件或?錄的所屬組
chgrp users 文件名
umask
首先要了解 權限掩碼是什么,我們創建一個文件和目錄:
我們發現文件權限不是66,目錄權限也不是777
這是因為有權限掩碼,權限掩碼就是讓某些權限在創建的時候不給出
第一位是特殊權限位不用管。因此權限掩碼就是000 000 010,即其他組沒有寫權限。也就和ll的對應上了
粘滯位
有一個潛在的問題,只要一個用戶擁有目錄寫的權限就可以刪除這個目錄下的文件,這是不可取的。我創建的文件憑什么被你給刪除掉了呢??
因此有了粘滯位
chmod +t 目錄
當?個?錄被設置為"粘滯位"(?chmod +t),則該?錄下的?件只能由
1. 超級管理員刪除
2. 該?錄的所有者刪除
3. 該?件的所有者刪除
?
一些提示
? ?錄的可執?權限是表?你可否在?錄下執?命令。
? 如果?錄沒有 -x 權限,則?法對?錄執?任何命令,甚??法 cd 進??, 即使?錄仍然有 -r 讀
權限(這個地?很容易犯錯,認為有讀權限就可以進??錄讀取?錄下的?件)
? ?如果?錄具有 -x 權限,但沒有 -r 權限,則??可以執?命令,可以 cd 進??錄。但沒有
?錄的讀權限
? 所以在?錄下,即使可以執? ls 命令,但仍然沒有權限讀出?錄下的?檔。