1、計算機系統中的權限

1.1、什么是權限
概念:
在計算機系統中,權限是指用戶或進程對系統資源(如文件、目錄、設備、網絡等)可以執行的操作的授權。權限的設計目的是為了保障系統的安全性,防止未經授權的訪問或操作。
權限的關鍵要素:
1、資源
權限總是針對某個具體資源,如:
文件或目錄數據庫記錄網絡端口系統配置
2、操作類型
不同資源支持不同的操作類型。如:
對文件:讀(Read)、寫(Write)、執行(Execute) 對數據庫:查詢、插入、更新、刪除 對網絡:連接、發送、接收
3、 主體
權限控制需要明確操作的主體,主體可以是:
用戶(User)用戶組(Group)進程(Process)角色(Role)
簡單來說,權限就是能或者不能去做一件事
1.2、為什么要有權限
權限設計的核心目的是保護系統資源,確保只有授權的用戶或進程可以訪問或修改特定的文件、程序或數據!
具體來說有以下原因:
提升系統安全性:限制未授權用戶訪問敏感數據或系統資源,防止數據泄露和惡意操作。精細化訪問控制:根據用戶角色分配權限,確保最小權限原則,避免誤操作和資源浪費。保障資源完整性:防止重要文件和數據被修改或破壞。支持多用戶環境:確保用戶之間的資源隔離,保護個人數據和協作權限。遵守合規要求:滿足行業法規和數據保護要求,提供審計追蹤功能。提升系統可維護性:通過角色和用戶組簡化權限管理,提高系統擴展性。減少潛在漏洞:通過嚴格的權限控制,降低系統漏洞帶來的風險。1.3、不同操作系統下的權限
不同操作系統下的權限設計方式有所不同,以下是主要操作系統的權限管理概述:
文件權限:
每個文件和目錄都有三種基本權限:讀(r)、寫(w)、執行(x),這些權限分別對文件的擁有者、所屬用戶組和其他用戶有效。 每個文件和目錄有三個權限組:
用戶(Owner):文件的擁有者權限。組(Group):與文件所有者同一組的用戶權限。其他(Others):其他用戶的權限。
文件權限表示:
通過 ls -l顯示的文件權限(例如:-rwxr-xr-x)。
SELinux和AppArmor:
增強訪問控制機制,通過給資源分配安全上下文來細化權限,提供更細粒度的安全控制。
ACL(access Control Lists):
提供比基本文件權限更細粒度的權限控制,允許為不同的用戶或組單獨設置不同的訪問權限。
命令行管理:
使用 chmod、chown 和 chgrp等命令來設置文件或目錄的權限。
根用戶(root):
root 用戶在類 Unix 系統中擁有完全的控制權限,不受權限控制,可以執行所有操作。
1.3.2、 Windows
NTFS 權限:
Windows 使用 NTFS 文件系統來管理文件和文件夾權限,權限包括讀取(Read)、寫入(Write)、執行(Execute)、修改(Modify)等。
用戶和組:
Windows 使用用戶賬戶和用戶組來管理權限,可以將權限分配給單個用戶或用戶組。
-訪問控制列表(ACL):
文件和文件夾的訪問控制通過 ACL 設置,ACL 記錄哪些用戶或組具有哪些權限。
–繼承權限:
在 Windows 中,文件夾的權限通常可以被其子文件繼承,這樣可以簡化大規模權限管理。
用戶賬戶控制(UAC):
UAC 允許系統管理權限的請求,防止未授權應用程序或惡意軟件獲得系統管理員權限。
1.3.3、 macos
UNIX 權限:
macos 基于 Unix,使用類似于 Linux 的文件權限(讀、寫、執行)來管理文件。
用戶和組:
macOS 使用用戶和組進行權限分配,每個文件都可以有不同的所有者和所屬用戶組。
系統完整性保護(SIP):
macOS 引入了 SIP 來保護系統關鍵文件和目錄,防止被修改。
ACL:
macOS 也支持訪問控制列表,提供更細粒度的權限控制。
1.3.4、 ios
iOS 是基于 Unix(Darwin)的操作系統,具有嚴格的權限管理機制,確保應用沙盒隔離,并保護用戶數據和設備的安全:
應用沙盒:
每個應用在 iOS 中都被隔離在自己的沙盒中,無法直接訪問其他應用或系統文件。即使是同一應用的不同部分,也只能在有限的沙盒內運行。
權限請求:
iOS 使用類似 android 的權限請求機制,應用在使用攝像頭、麥克風、位置、照片庫等敏感信息時,需要請求用戶授權。
App Store 審核:
iOS 應用必須經過嚴格的 App Store 審核,審核過程中會檢查應用是否遵循 iOS 的權限管理規則。
System Integrity Protection (SIP):
類似于 macOS,iOS 也擁有系統完整性保護機制,防止惡意應用或代碼篡改系統文件。
1.3.5、 Android
Android 是基于 Linux 內核的 ,因此它的權限管理方式也繼承了 Linux 的一些特性,但在移動環境下做了很多調整:
應用權限:
Android 應用有一套權限管理系統,應用安裝時會請求用戶授權所需的權限,如訪問攝像頭、位置、存儲等。
權限模型:
Android 使用基于角色的權限模型,系統級權限由 Android系統預定義,應用程序則需要顯式聲明權限,用戶可以選擇是否授予這些權限。
運行時權限:
Android6.0(Marshmallow)及更高版本引入了運行時權限模型。用戶可以在應用運行時授予或撤銷特定權限,而不僅僅是在安裝時授權。
SELinux:
Android 也采用了 SELinux 強制訪問控制機制,以提高安全性,確保應用和進程不能越權訪問系統資源。
小結:
操作系統
權限管理模型
特點
Linux/Unix
基于文件權限模型(r, w, x)和用戶、組、其他權限控制;使用命令行管理工具(chmod, chown, chgrp);支持 SELinux 和 AppArmor
類 Unix 系統,支持精細權限控制,適用于服務器和開發環境,強制訪問控制(MAC)
Windows
基于用戶和組的權限管理,訪問控制列表(ACL)控制文件權限,NTFS 文件系統
權限管理通過圖形界面和命令行工具(如 icacls)進行,較為簡單直觀,廣泛用于桌面環境
macOS
基于 Unix 系統(Darwin);文件權限管理與 Linux 相似,支持 ACL 和 System Integrity Protection(SIP)
通過沙盒機制、SIP 和 Gatekeeper 提供安全保護,限制惡意軟件和非授權訪問,應用需通過嚴格審核
Android
基于 Linux 內核,但加入了應用沙盒和運行時權限管理;使用 SELinux 提高安全性
動態權限請求,注重移動設備安全,應用被沙盒化,用戶控制權限的授予
iOS
基于 Unix 系統(Darwin);應用沙盒機制,嚴格的權限控制;系統完整性保護(SIP)和審查機制
強化安全性,通過沙盒機制隔離應用,嚴格的權限管理和審查機制,防止惡意行為和泄漏敏感數據
類 Unix 系統(Linux 和 Unix):基于文件和目錄權限,廣泛使用命令行工具來進行權限控制,支持更多高級的安全機制(如 SELinux)。Android 和 iOS:作為移動操作系統,它們在傳統的文件權限控制基礎上增加了應用沙盒和動態權限管理,以提高安全性,避免應用之間的相互干擾。Windows:使用 ACL 和 NTFS 權限模型,主要依賴于用戶和組管理,注重易用性,適合桌面操作系統的需求。macOS:與 Linux 相似的 Unix 權限模型,增強了系統完整性保護(SIP)和應用沙盒,提供多層次的安全防護機制。
這些操作系統在權限管理上的主要差異在于它們的架構設計和使用場景,移動操作系統更注重用戶隱私和安全,而桌面系統則更多地依賴于文件系統和用戶賬戶管理。
2、Linux中的權限2.1、Linux下的兩種用戶2.1.1、普通用戶
定義:
普通用戶是指擁有有限權限的用戶。普通用戶無法執行一些系統管理任務,如修改系統配置文件或安裝軟件等。
權限:
普通用戶通常只能訪問自己有權限的文件和資源,不能訪問其他用戶的文件,除非擁有相應的權限。
文件和目錄權限:
普通用戶通常只能對自己擁有的文件和目錄進行讀寫操作,對其他用戶的文件只能根據文件權限設置進行操作。
命令執行:
普通用戶只能執行普通的命令或程序,不能執行系統管理命令,除非獲得特殊權限(例如使用 sudo)。
常見用途:
普通用戶主要用于日常使用,比如瀏覽網頁、編輯文檔、運行應用程序等。
用戶管理:
在 Linux 中,每個普通用戶都有一個唯一的用戶 ID(UID)和一個與之關聯的用戶組。用戶可以屬于多個組,但每個文件和目錄都有一個與之關聯的所有者和所屬組。
普通用戶的命令行提示符:
代碼語言:JavaScript代碼運行次數:0運行復制
[zwy@iZbp1dkpw5hx2lyh7vjopaZ ~]$
2.1.2、超級用戶(root用戶)
定義:
超級用戶(也叫 root 用戶)是 Linux 系統中的管理員賬戶。root用戶擁有系統的完全控制權限,可以執行所有操作,包括對系統進行修改、安裝軟件、配置網絡等。
權限:
root 用戶具有幾乎無所不能的權限,能夠訪問所有文件、修改系統設置、安裝和卸載程序、創建和刪除用戶等。root不受權限限制
文件和目錄權限:
root 用戶對所有文件和目錄都擁有讀寫執行權限,不受任何權限限制。
命令執行:
root 用戶可以執行所有系統級命令,包括管理系統、網絡、硬件和用戶等。
常見用途:
root 用戶主要用于系統管理、安裝軟件、配置系統、修復系統問題等。普通用戶不能執行的一些管理任務,通常需要 root 用戶來執行。
安全性:
由于 root 用戶具有極高的權限,濫用或誤用 root 權限可能會對系統造成嚴重破壞。因此,一般建議避免長期以 root 用戶身份進行工作,最好通過 sudo 命令臨時獲得 root 權限來執行需要的操作。2.1.3、用戶之間的切換
普通用戶切換為超級用戶:
使用su -命令:
輸入su – 命令后,系統會提示你輸入root用戶的密碼,密碼輸入正確后,將會切換為root用戶,并且默認處在root用戶的家目錄。代碼語言:javascript代碼運行次數:0運行復制
[zwy@iZbp1dkpw5hx2lyh7vjopaZ ~]$ pwd/home/zwy[zwy@iZbp1dkpw5hx2lyh7vjopaZ ~]$ su -Password: Last login: Thu Jan 23 18:52:22 CST 2025 on pts/0[root@iZbp1dkpw5hx2lyh7vjopaZ ~]# pwd/root
使用su命令:
輸入su 命令后,系統同樣會提示你輸入root用戶的密碼,密碼輸入正確后,將會切換為root用戶,并且會保留在切換身份前的目錄中。代碼語言:javascript代碼運行次數:0運行復制
[zwy@iZbp1dkpw5hx2lyh7vjopaZ test]$ pwd/home/zwy/code/test[zwy@iZbp1dkpw5hx2lyh7vjopaZ test]$ suPassword: [root@iZbp1dkpw5hx2lyh7vjopaZ test]# pwd/home/zwy/code/test
超級用戶切換為其他普通用戶:
使用exit命令:
如果時使用 su或者su -命令從普通用戶切換為超級用戶,那么使用exit命令退出當前的 root 會話,返回到之前的普通用戶會話。代碼語言:javascript代碼運行次數:0運行復制
[zwy@iZbp1dkpw5hx2lyh7vjopaZ test]$ su -Password: Last login: Thu Jan 23 18:55:53 CST 2025 on pts/0[root@iZbp1dkpw5hx2lyh7vjopaZ ~]# exitlogout[zwy@iZbp1dkpw5hx2lyh7vjopaZ test]$
使用su命令:
使用su uesrname命令即可切換到任意一個普通用戶,username代表要切換到的用戶名,由于root的權限為最高級別,所以無需密碼即可切換。代碼語言:javascript代碼運行次數:0運行復制
[root@iZbp1dkpw5hx2lyh7vjopaZ ~]# su zwy[zwy@iZbp1dkpw5hx2lyh7vjopaZ root]$ pwd/root
切換后不會改變當前路徑,仍然停留在切換為普通用戶前,root用戶所在的目錄
2.2、文件的權限2.2.1、文件類型的劃分
普通文件(Regular File)
普通文件是最常見的文件類型,通常包含文本、二進制數據、圖像、音頻等內容。普通文件不具備特殊的功能,它們僅存儲數據。表示符號:-代碼語言:javascript代碼運行次數:0運行復制
示例:/home/user/document.txt、/usr/bin/program
目錄文件(Directory File)
目錄文件用于存儲文件系統中的文件和其他目錄。它實際上是一個特殊的文件,用于存儲其他文件的名字和位置信息。目錄本身不包含數據,而是充當文件夾的角色。表示符號:d代碼語言:javascript代碼運行次數:0運行復制
示例:/home/user/、/etc/
符號鏈接文件(Symbolic Link File)
符號鏈接(也叫軟鏈接)是一個指向另一個文件或目錄的引用。符號鏈接實際上只是一個路徑,指向另一個文件或目錄。它允許用戶通過一個文件名訪問另一個文件或目錄,而不需要知道實際文件的位置。表示符號:l代碼語言:javascript代碼運行次數:0運行復制
示例:/home/user/symlink(指向 /home/user/target_file)
字符設備文件(Character Device File)
字符設備文件是與字符設備(如終端、鍵盤、鼠標等)相關的文件。這些設備通常按字符流的方式進行輸入輸出。字符設備文件沒有緩存機制,每次輸入/輸出一個字符。表示符號:c代碼語言:javascript代碼運行次數:0運行復制
示例:/dev/tty1(終端設備),/dev/random(隨機設備)
塊設備文件(Block Device File)
塊設備文件是與塊設備(如硬盤、USB驅動器、光盤等)相關的文件。塊設備將數據按塊(如 512字節或更大的塊)進行存儲和傳輸。與字符設備不同,塊設備通常具有緩存機制,可以在多個塊上同時進行讀寫操作。表示符號:b代碼語言:javascript代碼運行次數:0運行復制
示例:/dev/sda(硬盤),/dev/sdb1(硬盤分區)
命名管道文件(FIFO File)
FIFO(First In, FirstOut)文件也叫命名管道,是一種用于進程間通信(IPC)的特殊文件。它允許一個進程將數據寫入管道,另一個進程讀取這些數據。管道文件的作用是建立進程之間的通信。表示符號:p代碼語言:javascript代碼運行次數:0運行復制
示例:/tmp/myfifo(管道文件)
套接字文件(Socket File)
套接字文件用于網絡通信或進程間通信。它們提供了進程間數據交換的通道,特別適用于客戶端-服務器通信。套接字通常用于建立網絡連接。表示符號:s代碼語言:javascript代碼運行次數:0運行復制
示例:/tmp/mysocket(套接字文件)
設備文件(Device File)
設備文件是 Linux 中與硬件設備的交互接口。它們分為字符設備和塊設備文件。設備文件一般位于 /dev 目錄下。字符設備文件(c):用于與字符設備(如終端、串口等)進行交互。塊設備文件(b):用于與塊設備(如硬盤、USB 驅動器等)進行交互。
符號鏈接(Symbolic Link)
符號鏈接文件(軟鏈接)是 Linux 系統中的一種特殊文件,實際上它只是一個指向另一個文件的路徑引用。它允許用戶通過不同的路徑訪問同一個文件或目錄。表示符號:l代碼語言:javascript代碼運行次數:0運行復制
示例:ln -s /path/to/target /path/to/symlink
文件類型查看
你可以使用 ls -l 命令查看文件的類型。
輸出示例:
代碼語言:javascript代碼運行次數:0運行復制
-rw-r--r-- 1 user group 1048576 Jan 23 10:00 example.txt # 普通文件drwxr-xr-x 2 user group 4096 Jan 23 10:00 myfolder # 目錄文件lrwxrwxrwx 1 user group 10 Jan 23 10:00 symlink -> file.txt # 符號鏈接crw-rw-rw- 1 root root 10, 1 Jan 23 10:00 /dev/tty1 # 字符設備文件brw-rw-rw- 1 root root 8, 0 Jan 23 10:00 /dev/sda # 塊設備文件prw-r--r-- 1 user group 0 Jan 23 10:00 myfifo # FIFO 文件srw-rw-rw- 1 user group 0 Jan 23 10:00 mysocket # 套接字文件
文件類型總結
文件類型
表示符號
說明
示例
普通文件
–
包含文本、圖像、程序等數據
/home/user/document.txt
目錄文件
d
存放其他文件或目錄
/home/user/
符號鏈接
l
指向其他文件的快捷方式
/home/user/symlink -> /home/user/target_file
字符設備文件
c
與字符設備(如終端、鼠標)交互的文件
/dev/tty1
塊設備文件
b
與硬盤等塊設備交互的文件
/dev/sda
FIFO 文件
p
用于進程間通信的文件
/tmp/myfifo
套接字文件
s
用于進程間或網絡通信的文件
/tmp/mysocket
設備文件
c、b
用于與硬件設備交互的文件,字符設備和塊設備
/dev/sda(塊設備),/dev/tty1(字符設備)
符號鏈接文件(軟鏈接)
l
文件系統中的快捷方式,指向其他文件或目錄
/home/user/symlink -> /home/user/target_file
2.2.2、文件權限的表示
文件訪問用戶的分類:
文件的擁有者(User)與文件擁有者同組的用戶(Group)稱為所屬組其他用戶(Others)
文件訪問的權限:
r:讀權限w:寫權限x:執行權限如果沒有某項權限,則該位置為 –
文件的權限=訪問角色+目標文件屬性
角色就是文件訪問者的身份目標屬性就是目標文件本身的屬性
說明:
文本文件本身不具備可執行的屬性,那么即使文件訪問者具備執行該文件的權限,由于該文件本身不可執行,最終文件的權限表示為不可執行可執行文件本身就具備可執行的屬性,那么如果文件訪問者具備執行該文件的權限,那么文件的權限就表示為可執行,如果文件訪問者不具備執行該文件的權限,那么文件的權限就表示為不可執行
通俗的說,給你機會你也不中用啊,即便系統給你執行該文件的權限,但是該文件本來就不具備可執行屬性,那么最終文件的權限還是不可執行
再次理解,文件的權限=訪問角色+目標文件屬性
例如:
代碼語言:javascript代碼運行次數:0運行復制
[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ ls -ltotal 0-rw-r--r-- 1 root root 0 Jan 22 21:40 root.txt-rw-rw-r-- 1 zwy zwy 0 Jan 22 21:56 zwy.txt
對如上文件權限分析:

根據上述分析:
root.txt: 該文件為普通文件,文件本身不具備可執行的屬性,標識符為-,擁有者為root,所屬組為root,擁有者的權限為rw-,可讀可寫不可執行,所屬組的權限為r–,只可讀不可寫不可執行,其他用戶other的權限為r–,只可讀不可寫不可執行zwy.txt: 該文件也為普通文件,文件本身不具備可執行的屬性,標識符為-,擁有者為zwy,所屬組為zwy,擁有者的權限為rw-,可讀可寫不可執行,所屬組的權限為rw-,可讀可寫不可執行,其他用戶other的權限為r–,只可讀不可寫不可執行
文件權限的八進制表示:

每個用戶類別的權限是獨立的,因此可以用二進制的0或1來表示每個用戶的權限,0表示沒有該權限,1表示擁有該權限。則每3個二進制位可以表示該用戶的權限,而3個二進制位剛好可以表示一個八進制數,共3組八進制數就構成了文件權限的八進制表示。
例如:
權限
擁有者(Owner)
所屬組(Group)
其他用戶(Others)
二進制表示
八進制表示
rwxr-xr-x
rwx (7)
r-x (5)
r-x (5)
111 101 101
755
rw-r–r–
rw- (6)
r– (4)
r– (4)
110 100 100
644
rwx——
rwx (7)
— (0)
— (0)
111 000 000
700
r–r–r–
r– (4)
r– (4)
r– (4)
100 100 100
444
rwxrwxrwx
rwx (7)
rwx (7)
rwx (7)
111 111 111
777
—rwx—
— (0)
rwx (7)
— (0)
000 111 000
070
r-x——
r-x (5)
— (0)
— (0)
101 000 000
500
rw——-
rw- (6)
— (0)
— (0)
110 000 000
600
r–r-xr–
r– (4)
r-x (5)
r– (4)
100 101 100
454
2.2.3、文件權限的修改
使用chmod指令修改文件的權限
操作符:
+:添加權限。-:移除權限。=:設置精確權限(覆蓋現有權限)。
用戶類別:
u:擁有者(User)g:所屬組組(Group)o:其他用戶(Others)a:所有用戶(All,包含 u、g 和 o)
權限字符:
r:讀權限w:寫權限x:執行權限
命令格式:
chmod 用戶 操作符 權限 文件名
添加權限:
代碼語言:javascript代碼運行次數:0運行復制
chmod u+x filename:#給文件的擁有者添加執行權限。chmod g+r filename:#給文件的所屬組添加讀權限。chmod o+w filename:#給其他用戶添加寫權限。
移除權限:
代碼語言:javascript代碼運行次數:0運行復制
chmod u-x filename:#給文件的擁有者移除執行權限。chmod g-w filename:#給文件的所屬組移除寫權限。chmod o-r filename:#給文件其他用戶移除讀權限。
精確設置權限:
代碼語言:javascript代碼運行次數:0運行復制
chmod u=rwx filename:#將文件的擁有者的權限設置為讀、寫、執行。chmod g=rx filename:#將文件的所屬組權限設置為讀和執行。chmod o=r filename:#將文件其他用戶權限設置為只讀。
使用八進制表示法修改文件的權限
八進制模式使用一個三位二進制數字來表示文件的權限。每一位數字表示不同類別的權限,范圍從 0 到 7。
示例:
設置文件權限為 rwxr-xr-x(755)代碼語言:javascript代碼運行次數:0運行復制
chmod 755 filename
說明:所有者有讀、寫、執行權限(7),用戶組和其他用戶有讀和執行權限(5)。
設置文件權限為 rw-r–r–(644)代碼語言:javascript代碼運行次數:0運行復制
chmod 644 filename
說明:所有者有讀和寫權限(6),用戶組和其他用戶有只讀權限(4)。
設置文件權限為 rwx——(700)代碼語言:javascript代碼運行次數:0運行復制
chmod 700 filename
說明:所有者有讀、寫、執行權限(7),用戶組和其他用戶沒有任何權限(0)。
設置文件權限為 r–r–r–(444)代碼語言:javascript代碼運行次數:0運行復制
chmod 444 filename
說明:所有者、用戶組和其他用戶只有讀權限(4)。
設置文件權限為 rwxrwxrwx(777)代碼語言:javascript代碼運行次數:0運行復制
chmod 777 filename
說明:所有者、用戶組和其他用戶都有讀、寫、執行權限(7)。
設置文件權限為 r-xr-xr-x(555)代碼語言:javascript代碼運行次數:0運行復制
chmod 555 filename
說明:所有者、用戶組和其他用戶都有讀和執行權限(5),沒有寫權限。
遞歸修改權限
當需要修改目錄及其所有子文件和子目錄的權限時,可以使用 -R 選項來遞歸修改權限。代碼語言:javascript代碼運行次數:0運行復制
chmod -R 755 /path/to/Directory #指定目錄
這將會遞歸地將指定目錄及其所有內容的權限設置為 rwxr-xr-x(755)
2.2.4、文件擁有者和所屬組的修改
在 Linux 系統中,文件的 擁有者(owner)和 所屬組(group)可以通過命令進行修改。這對于文件的管理和權限控制非常重要。
chown 命令 chown(change owner)命令用于更改文件或目錄的擁有者和所屬組。
代碼語言:javascript代碼運行次數:0運行復制
chown [OPTIONS] USER:GROUP FILE
USER: 新的文件擁有者(用戶)。GROUP: 新的文件所屬組(組)。FILE: 目標文件或目錄的路徑。
如果你只需要更改文件的 擁有者 或 所屬組,可以省略 GROUP 或 USER。
修改文件的擁有者:
要將文件 file.txt 的擁有者改為用戶 Sam,可以執行以下命令:代碼語言:javascript代碼運行次數:0運行復制
chown Sam file.txt
這會將 file.txt 的擁有者更改為 Sam,而文件的所屬組保持不變。
修改文件的所屬組:
要將文件 file.txt 的所屬組改為Bob,可以執行以下命令:代碼語言:javascript代碼運行次數:0運行復制
chown :Bob file.txt
或者使用chgrp命令:代碼語言:javascript代碼運行次數:0運行復制
chown Bob file.txt
這會將 file.txt 的所屬組更改為Bob,而文件的擁有者保持不變。
同時修改文件的擁有者和所屬組: 要將文件 file.txt 的擁有者更改為Sam,同時將所屬組更改為 Bob,可以執行以下命令:
代碼語言:javascript代碼運行次數:0運行復制
chown Sam:Bob file.txt
或者也可以使用這種方式:
代碼語言:javascript代碼運行次數:0運行復制
chown Sam.Bob file.txt
修改目錄及其內部所有文件的擁有者和所屬組
如果你想遞歸地修改目錄及其下所有文件的擁有者和所屬組,可以使用 -R 選項:代碼語言:javascript代碼運行次數:0運行復制
chown -R Sam:Bob /path/to/directory
這會將 /path/to/directory 目錄及其所有內容(包括子目錄和文件)的擁有者更改為 Sam,所屬組更改為Bob。
修改文件的權限和擁有者時的注意事項:
文件擁有者:只有超級用戶(root)才能修改文件的擁有者。如果你沒有足夠的權限,系統會提示權限錯誤。代碼語言:javascript代碼運行次數:0運行復制
[zwy@iZbp1dkpw5hx2lyh7vjopaZ test]$ chown zyy:zyy zwy.txtchown: changing ownership of ‘zwy.txt’: Operation not permitted
文件所屬組:普通用戶可以更改文件的所屬組,但需滿足兩個條件:用戶是文件的當前所有者。用戶屬于目標組。
2.2.5、文件權限的缺失
文件沒有讀取權限:
如果一個文件沒有讀取權限,用戶無法查看該文件的內容。嘗試打開文件時,會返回權限拒絕錯誤。代碼語言:javascript代碼運行次數:0運行復制
[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ lltotal 16-rwxrwxrwx 1 zwy zwy 8360 Jan 25 16:13 code--w-rw-rw- 1 zwy zwy 75 Jan 25 20:57 code.c[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ cat code.ccat: code.c: Permission denied
這意味著用戶無法查看文件的內容。
文件沒有寫入權限:
如果一個文件沒有寫入權限,用戶無法修改該文件。嘗試編輯或覆蓋文件時,會收到權限拒絕的錯誤。代碼語言:javascript代碼運行次數:0運行復制
[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ lltotal 16-rwxrwxrwx 1 zwy zwy 8360 Jan 25 16:13 code----rw-rw- 1 zwy zwy 75 Jan 25 20:57 code.c[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ echo 'hello linux' >> code.c-bash: code.c: Permission denied
這意味著用戶無法對文件進行修改或寫入操作。
文件沒有執行權限: 如果文件是腳本或二進制文件,而沒有執行權限,用戶無法運行該文件作為程序。
代碼語言:javascript代碼運行次數:0運行復制
[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ lltotal 16-rw-rwxrwx 1 zwy zwy 8360 Jan 25 16:13 code-rw-rw-rw- 1 zwy zwy 75 Jan 26 11:59 code.c[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ ./code-bash: ./code: Permission denied
這意味著用戶無法執行該文件。
文件沒有修改權限:如果你嘗試修改文件權限(例如使用 chmod)但沒有足夠的權限,你可能會收到如下系統反饋:
代碼語言:javascript代碼運行次數:0運行復制
[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ lltotal 16-rw-rwxrwx 1 zwy zwy 8360 Jan 25 16:13 code-rw-rw-rw- 1 zwy zwy 75 Jan 26 11:59 code.c-rw-r--r-- 1 root root 0 Jan 26 12:03 root.txt[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ chmod o+w root.txtchmod: changing permissions of ‘root.txt’: Operation not permitted
以zwy用戶身份使用chmod指令修改root用戶的文件權限,顯然該操作不被系統允許,不具備足夠的權限
2.3、目錄的權限Linux下一切皆文件
目錄也是一種特殊的文件 。由于目錄權限的特殊性,我們將目錄單獨講解

大家覺得用戶能否進入一個目錄,取決于目錄的哪個權限呢?答對了!取決于是否擁有該目錄的執行權限
2.3.1、目錄的執行權限含義: 允許用戶進入(訪問)該目錄,執行與該目錄相關的路徑操作。使用場景: 用戶需要有執行權限才能通過 cd 命令進入該目錄,或訪問該目錄的子目錄(即使該目錄不可讀)。如果沒有執行權限,用戶不能進入該目錄,即使有其他權限(如讀取權限)。沒有執行權限時: 如果目錄沒有執行權限,用戶無法進入該目錄,甚至無法通過路徑訪問該目錄的任何文件或子目錄。代碼語言:javascript代碼運行次數:0運行復制
[zwy@iZbp1dkpw5hx2lyh7vjopaZ ~]$ lltotal 4drw-rwxr-x 2 zwy zwy 4096 Jan 26 12:03 code[zwy@iZbp1dkpw5hx2lyh7vjopaZ ~]$ cd code/-bash: cd: code/: Permission denied[zwy@iZbp1dkpw5hx2lyh7vjopaZ ~]$ ls -l code/ls: cannot access code/root.txt: Permission deniedls: cannot access code/code.c: Permission deniedls: cannot access code/code: Permission deniedtotal 0-????????? ? ? ? ? ? code-????????? ? ? ? ? ? code.c-????????? ? ? ? ? ? root.txt
由此可以得出結論,如果沒有目錄的執行權限,用戶無法通過cd命令進入該目錄,也無法通過ls命令查看該目錄的任何內容2.3.2、目錄的讀權限含義: 允許用戶列出目錄中的文件和子目錄。使用場景: 用戶可以使用 ls 命令查看目錄中的文件名和子目錄名稱,但無法查看文件的內容。代碼語言:javascript代碼運行次數:0運行復制
[zwy@iZbp1dkpw5hx2lyh7vjopaZ ~]$ lltotal 4drwxrwxr-x 2 zwy zwy 4096 Jan 26 12:03 code[zwy@iZbp1dkpw5hx2lyh7vjopaZ ~]$ ls -l code/total 16-rw-rwxrwx 1 zwy zwy 8360 Jan 25 16:13 code-rw-rw-rw- 1 zwy zwy 75 Jan 26 11:59 code.c-rw-r--r-- 1 root root 0 Jan 26 12:03 root.txt
沒有讀取權限時: 如果目錄沒有讀取權限,嘗試執行 ls 命令會返回權限拒絕的錯誤,即使你有進入該目錄的權限,仍然無法列出其中的內容。代碼語言:javascript代碼運行次數:0運行復制
[zwy@iZbp1dkpw5hx2lyh7vjopaZ ~]$ chmod u-r code[zwy@iZbp1dkpw5hx2lyh7vjopaZ ~]$ ls -l code/ls: cannot open directory code/: Permission denied[zwy@iZbp1dkpw5hx2lyh7vjopaZ ~]$ cd code/[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ ls -l ls: cannot open directory .: Permission denied
2.3.3、目錄的寫權限含義: 允許用戶在該目錄內創建、刪除和重命名文件或子目錄。使用場景: 用戶可以在該目錄中創建新的文件或子目錄,或者刪除目錄中的文件和子目錄。代碼語言:javascript代碼運行次數:0運行復制
[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ lltotal 16-rw-rwxrwx 1 zwy zwy 8360 Jan 25 16:13 code-rw-rw-rw- 1 zwy zwy 75 Jan 26 11:59 code.c-rw-r--r-- 1 root root 0 Jan 26 12:03 root.txt[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ touch log.txt[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ mv code.c code.cpp[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ lltotal 16-rw-rwxrwx 1 zwy zwy 8360 Jan 25 16:13 code-rw-rw-rw- 1 zwy zwy 75 Jan 26 11:59 code.cpp-rw-rw-r-- 1 zwy zwy 0 Jan 26 12:39 log.txt-rw-r--r-- 1 root root 0 Jan 26 12:03 root.txt
沒有寫入權限時: 如果目錄沒有寫入權限,用戶無法在目錄內進行修改,如創建文件、刪除文件或重命名文件。代碼語言:javascript代碼運行次數:0運行復制
[zwy@iZbp1dkpw5hx2lyh7vjopaZ ~]$ chmod u-w code[zwy@iZbp1dkpw5hx2lyh7vjopaZ ~]$ cd code/[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ touch test.ctouch: cannot touch ‘test.c’: Permission denied[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ rm -f log.txtrm: cannot remove ‘log.txt’: Permission denied[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ mv code.cpp code.cmv: cannot move ‘code.cpp’ to ‘code.c’: Permission denied
2.4、缺省權限(默認權限)文件:新文件的默認權限通常是 666(rw-rw-rw-),即所有者、組用戶和其他用戶都具有讀寫權限,但沒有執行權限。目錄:新目錄的默認權限通常是 777(rwxrwxrwx),即所有者、組用戶和其他用戶都可以讀、寫和執行,即可以進入該目錄。代碼語言:javascript代碼運行次數:0運行復制
[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ touch log.txt[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ mkdir test-dir[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ lltotal 4-rw-rw-r-- 1 zwy zwy 0 Jan 26 21:14 log.txtdrwxrwxr-x 2 zwy zwy 4096 Jan 26 21:15 test-dir
但當我們在Linux下實際操作時發現:
創建新文件時,默認權限是664(rw-rw-r–),并不是666(rw-rw-rw-)創建新目錄時,默認權限是775(rwxrwxr-x),并不是777(rwxrwxrwx)
為什么會出現這種情況呢? 這是因為有umask的存在
2.4.1、權限掩碼umask

什么是權限掩碼?
權限掩碼(umask) 是一個用于控制新創建文件和目錄權限的機制
它定義了系統在創建文件或目錄時,應該從默認權限中去除哪些權限。umask值通過位掩碼的方式指定,影響文件和目錄的讀(r)、寫(w)和執行(x)權限。
默認文件權限:666(rw-rw-rw-)默認目錄權限:777(rwxrwxrwx)掩碼:umask會“減去”這些默認權限的一部分,從而影響最終的權限。
為什么要有權限掩碼?
權限掩碼的目的是為了 增強安全性 和 控制權限,因為不是所有用戶或程序都應該對文件或目錄擁有相同的訪問權限。
增強安全性:默認情況下,文件創建時具有過多的權限可能會導致安全問題。例如,如果一個文件對所有人都開放寫權限,任何用戶都可以修改它,這可能導致數據丟失或泄露。控制訪問:通過設置合適的umask值,管理員可以確保文件和目錄僅限于必要的用戶和組訪問。比如,管理員可以避免其他用戶(不是文件的所有者或所屬組的用戶)擁有不必要的寫權限。滿足特定需求:不同的環境和項目可能需要不同的權限控制。例如,一些敏感項目要求嚴格的訪問權限,因此可以設置更嚴格的umask值。
怎么使用權限掩碼?
查看umask:
在命令行中輸入umask指令即可查看當前用戶的umask設置代碼語言:javascript代碼運行次數:0運行復制
[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ umask0002
或者在命令行中輸入umask -S查看當前用戶的umask設置代碼語言:javascript代碼運行次數:0運行復制
[zwy@iZbp1dkpw5hx2lyh7vjopaZ ~]$ umask -Su=rwx,g=rwx,o=rx
更改umask:
如果你想設置新的umask值為0022,直接在命令行中輸入 umask 0022代碼語言:javascript代碼運行次數:0運行復制
[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ umask 0022[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ umask0022
注意:
這樣設置只是臨時的,umask只能在當前狀態下有效,當重啟Xshell時就會恢復。如果要永久更改umask,需要編輯 /etc/profile或用戶的 ~/.bash_profile 文件,添加或修改 umask 設置。如果你只想影響特定用戶,可以編輯他們的~/.bash_profile 或 ~/.bashrc 文件
四位umask的含義:
四位umask的格式為:0ABC
其中:
第1位(0):控制特殊權限位(setuid、setgid、sticky bit)。后3位(ABC):控制基本權限(所有者、組、其他用戶的權限掩碼)。
第一位數字用于屏蔽以下權限:
setuid(SUID):允許用戶以文件所有者的權限執行程序。setgid(SGID):對目錄生效時,新建文件會繼承目錄的組;對文件生效時,以文件所屬組的權限執行。sticky bit:常見于目錄(如/tmp),僅允許文件所有者刪除自己的文件。
八進制值
二進制值
被屏蔽的權限
說明
0
000
無
允許設置所有特殊權限
1
001
Sticky Bit
屏蔽 Sticky Bit
2
010
SGID
屏蔽 SGID
3
011
SGID + Sticky Bit
同時屏蔽 SGID 和 Sticky Bit
4
100
SUID
屏蔽 SUID
5
101
SUID + Sticky Bit
同時屏蔽 SUID 和 Sticky Bit
6
110
SUID + SGID
同時屏蔽 SUID 和 SGID
7
111
SUID + SGID + Sticky Bit
屏蔽所有特殊權限
后三位與三位umask一致,通過掩碼屏蔽權限:
文件默認權限:666 – umask(文件默認無執行權限)。目錄默認權限:777 – umask(目錄默認有執行權限)。
八進制值
二進制值
屏蔽的權限(rwx)
0
000
不屏蔽任何權限
1
001
屏蔽執行(x)
2
010
屏蔽寫(w)
3
011
屏蔽寫和執行
4
100
屏蔽讀(r)
5
101
屏蔽讀和執行
6
110
屏蔽讀和寫
7
111
屏蔽所有權限
2.4.2、最終權限的確定
最終權限=缺省權限(默認權限)&(~umask) 如何理解?
默認權限:文件和目錄的初始最大權限(文件 666,目錄 777)。umask:需要屏蔽(禁用)的權限位,通過 按位取反(~) 后與默認權限進行 按位與(&) 操作。最終權限:實際生效的權限。
示例驗證:
文件權限計算(默認 666,umask 022)
默認權限:666 → 二進制 110 110 110umask:022 → 二進制 000 010 010按位取反(~umask):111 101 101
按位與(&):
代碼語言:javascript代碼運行次數:0運行復制
110 110 110 (666)& 111 101 101 (~022)--------------------110 100 100 → 八進制 `644`(rw-r--r--)
目錄權限計算(默認 777,umask 027)
默認權限:777 → 二進制 111 111 111umask:027 → 二進制 000 010 111按位取反(~umask):111 101 000
按位與(&):
代碼語言:javascript代碼運行次數:0運行復制
111 111 111 (777)& 111 101 000 (~027)--------------------111 101 000 → 八進制 `750`(rwxr-x---)
為什么看起來可以等價為“減法”?
當 umask 的二進制位是默認權限的子集時,按位與取反后的 umask 等價于 默認權限減去 umask。
示例: 默認權限 666(110 110 110),umask 022(000 010 010):
代碼語言:javascript代碼運行次數:0運行復制
666 - 022 = 644 → 結果與按位與一致。
局限性:
如果 umask 的某一位權限值超過默認權限的對應位,減法會借位,但按位與不會(此時兩種方法結果不同)。(實際場景中,umask 通常不會設置超過默認權限的位,因此減法仍適用。)
公式的普遍適用性:
適用所有情況:無論是三位還是四位 umask,均可用此公式計算最終權限。特殊權限位:四位 umask 的第一位(如 0022 中的 0)也遵循此規則代碼語言:javascript代碼運行次數:0運行復制
默認權限(含特殊位):7777(SUID/SGID/Sticky Bit + rwxrwxrwx)umask 0777 → 屏蔽所有權限(包括特殊權限)。
方式
優點
缺點
默認權限 – umask
直觀,適合簡單場景
不適用于 umask 位超過默認權限的情況
默認權限 & (~umask)
嚴格符合二進制邏輯,普適所有場景
需要理解位運算
2.5、權限粘滯位2.5.1、問題導入
思考一個問題:
代碼語言:javascript代碼運行次數:0運行復制
drwxrwxrwx 2 root root 4096 Jan 27 12:44 temp-backup
如果有多人協同辦公的需求,我們可以在在/下創建臨時目錄temp-backup來解決這樣的場景,所有人對該目錄都具有讀寫和執行的權限,我們知道,擁有目錄的寫權限就可以在目錄內新建或者刪除文件,那么如果不是我們的文件,可以刪除嗎?
代碼語言:javascript代碼運行次數:0運行復制
[zwy@iZbp1dkpw5hx2lyh7vjopaZ temp-backup]$ lltotal 4-rw-r--r-- 1 root root 11 Jan 27 15:54 root.txt[zwy@iZbp1dkpw5hx2lyh7vjopaZ temp-backup]$ cat root.txthelloworld[zwy@iZbp1dkpw5hx2lyh7vjopaZ temp-backup]$ echo 'hellolinux' >> root.txtbash: root.txt: Permission denied[zwy@iZbp1dkpw5hx2lyh7vjopaZ temp-backup]$ rm -f root.txt[zwy@iZbp1dkpw5hx2lyh7vjopaZ temp-backup]$ lltotal 0
答案是可以的!
即便我不是文件的擁有者和所屬組,我只有文件的讀權限,但是我仍然可以刪除這屬于root用戶的文件,且不需要任何身份確認!因為文件能否被刪除取決于所在目錄的讀權限,而不取決于文件本身的權限
在這些共享目錄中,如果有人惡意刪除文件,那么即便不是他的文件他也有權力刪除,就會導致一些不可預料的錯誤,針對這個問題,Linux中對目錄增加了粘滯位的概念。
2.5.2、粘滯位的設置
在 Linux 和類 Unix 系統中,給目錄設置 粘滯位(Sticky Bit)是一種常見的做法,尤其是在共享目錄中。
粘滯位的作用是限制對目錄中文件的刪除權限,確保只有文件的所有者、目錄的所有者,或者超級用戶(root)才能刪除該目錄中的文件。
為什么需要設置粘滯位?
防止非所有者刪除文件:
在多用戶系統中,可能有多個用戶共享一個目錄。如果沒有設置粘滯位,任何用戶都可以刪除該目錄中的文件。為了避免誤刪除或惡意刪除其他用戶的文件,可以設置粘滯位。粘滯位限制了文件的刪除權限,只有文件的所有者(即該文件創建者)或超級用戶(root)才能刪除該文件,即使其他用戶對該目錄有寫權限。
增強共享目錄的安全性:
如果有一個公共的共享目錄,多個用戶可以向其中添加文件。如果沒有粘滯位,那么用戶 A、B、C 都可以刪除目錄中其他用戶的文件。而如果設置了粘滯位,則只有文件的擁有者才能刪除自己的文件,其他用戶不能刪除。這樣可以避免共享目錄中的文件被無意中或惡意刪除。
常見應用場景:
/tmp 目錄:這是一個常見的設置粘滯位的目錄。所有用戶都可以在 /tmp 目錄中創建臨時文件,但只有文件的所有者或 root用戶能夠刪除文件。這樣即使其他用戶也能在該目錄下創建文件,也無法刪除他人創建的文件。/var/tmp 目錄:類似于 /tmp,也經常會設置粘滯位來防止文件的刪除問題。
粘滯位的查看:
使用 ls -l 命令查看目錄的權限,如果最后一個字符是 t,說明目錄已啟用粘滯位:代碼語言:javascript代碼運行次數:0運行復制
drwxrwxrwt. 8 root root 4096 Jan 27 03:28 tmp
根目錄下的tmp目錄就是啟用粘滯位的目錄,用來存放臨時文件多人協作辦公

設置粘滯位:
設置粘滯位:使用 chmod 命令可以設置或取消粘滯位。設置粘滯位的命令如下: chmod +t /tmp 這樣就會為 /tmp 目錄啟用粘滯位。代碼語言:javascript代碼運行次數:0運行復制
[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ lltotal 4drwxrwxr-x 2 zwy zwy 4096 Jan 27 18:58 temp-backup[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ chmod +t temp-backup[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ lltotal 4drwxrwxr-t 2 zwy zwy 4096 Jan 27 18:58 temp-backup
取消粘滯位:
如果你不再需要該目錄具有粘滯位,可以使用以下命令來取消:chmod -t /tmp代碼語言:javascript代碼運行次數:0運行復制
[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ lltotal 4drwxrwxr-t 2 zwy zwy 4096 Jan 27 18:58 temp-backup[zwy@iZbp1dkpw5hx2lyh7vjopaZ code]$ lltotal 4drwxrwxr-x 2 zwy zwy 4096 Jan 27 18:58 temp-backup
總結:
公共目錄在沒有粘滯位的情況下,任何用戶都可以刪除目錄中的文件。設置粘滯位后,只有文件的所有者或 root用戶才能刪除目錄中的文件,即使其他用戶對目錄具有寫權限。設置粘滯位是為了增強共享目錄的安全性,防止用戶誤刪或惡意刪除其他用戶的文件。它特別適用于公共目錄,如/tmp,通過限制刪除權限,保證系統的穩定性和安全性。
3、Linux下的家目錄
在 Linux 系統中,每個用戶都有一個 家目錄(Home Directory),該目錄是用戶存儲個人文件、配置文件和其他數據的地方。家目錄通常位于 /home 目錄下,每個用戶都會有一個與其用戶名相同的子目錄。例如,用戶 LA的家目錄通常是 /home/LA
3.1、家目錄的基本知識
家目錄的基本概念: 家目錄是一個為每個用戶分配的獨立空間,包含該用戶的文件、設置、配置文件等。家目錄為用戶提供一個隔離的環境,使得他們可以自由地管理自己的文件,而不影響其他用戶的文件。
家目錄的默認位置: 默認情況下,Linux 系統為每個用戶創建一個家目錄,通常位于 /home 目錄下。 例如:
用戶 la 的家目錄:/home/la用戶 hq 的家目錄:/home/hq對于 root 用戶(超級用戶),家目錄通常位于 /root,這是 root 用戶的默認工作目錄。3.2、家目錄的權限
家目錄的權限通常為 700,即僅允許該用戶自己訪問,其他用戶無法查看或修改其家目錄。這樣就做到了多用戶彼此隔離,互不干擾
代碼語言:javascript代碼運行次數:0運行復制
[root@iZbp1dkpw5hx2lyh7vjopaZ home]# ls -ltotal 8drwx------ 3 zwy zwy 4096 Jan 26 22:32 zwydrwx------ 2 zyy zyy 4096 Jan 27 19:48 zyy

3.3、家目錄的創建和刪除
家目錄中的內容: 家目錄通常包含以下內容:
配置文件:大多數程序的配置文件都會存放在家目錄下,通常以 . 開頭,表示它們是隱藏文件。例如,~/.bashrc、 ~/.profile 等。個人數據:用戶在家目錄下存放的文件和文件夾程序和應用的臨時文件:一些程序可能會在家目錄下創建臨時文件和緩存文件,通常在隱藏的文件夾內。
創建用戶時的家目錄: 當使用 useradd 命令創建新用戶時,系統會默認為用戶創建一個家目錄。默認情況下,該目錄位于 /home 下,目錄名與用戶的用戶名相同。
例如,創建一個名為 xxn 的用戶時:
代碼語言:javascript代碼運行次數:0運行復制
sudo useradd xxn
系統會為xxn用戶創建 /home/xxn 目錄,并將其設置為該用戶的家目錄。
設置家目錄: 如果你希望為某個用戶設置一個不同的位置作為家目錄,可以使用 -d 選項:
代碼語言:javascript代碼運行次數:0運行復制
sudo useradd -d /custom/path/username username
這會將用戶 username 的家目錄設置為 /custom/path/username
訪問家目錄: 用戶可以通過 cd 命令進入自己的家目錄:
代碼語言:javascript代碼運行次數:0運行復制
cd ~
或者
代碼語言:javascript代碼運行次數:0運行復制
cd /home/username
~ 是一個快捷方式,表示當前用戶的家目錄。你也可以使用 echo $HOME 命令查看當前用戶的家目錄路徑。
刪除用戶及其家目錄: 如果你想刪除用戶以及他們的家目錄,可以使用 userdel 命令的 -r 選項:
sudo userdel -r alice
這會刪除用戶 alice 和其家目錄 /home/alice。
4、權限小結4.1、文件權限
權限
含義
數字表示
示例
r
讀權限
4
r–(只讀)
w
寫權限
2
rw-(讀寫)
x
執行權限
1
rwx(完全權限)
4.2、權限表示(數字)
權限組合
含義
數字表示
rwx
所有者:讀、寫、執行
7
r-x
所有者:讀、執行
5
rw-
所有者:讀、寫
6
r–
所有者:讀
4
4.3、 文件和目錄權限
操作
文件權限
目錄權限
r
讀取文件內容
列出目錄中的文件
w
修改文件內容
創建、刪除文件
x
執行文件
進入目錄(cd)
4. 4、常用命令
命令
說明
ls -l
查看文件權限
chmod 755 file.txt
修改文件權限
chown alice:staff file.txt
更改文件的擁有者和所屬組
useradd alice
創建新用戶
usermod -aG devs john
將用戶添加到組
4.5、 特殊權限