目錄
1. 用戶管理
用戶分類
用戶相關文件
常用命令
2. 組管理
組相關文件
常用命令
3. 權限管理
文件權限
權限表示
修改權限
修改所有者和所屬組
特殊權限
4. 示例
命令的詳細解釋
權限解釋
示例:文件權限 -rw-r--r-- 的含義
在 Linux 中,用戶和權限管理是系統安全和資源控制的核心。以下是對 Linux 用戶和權限的詳細解釋:
1. 用戶管理
用戶分類
- 普通用戶:通常用于個人和非特權操作。
- 超級用戶(root):擁有系統的完全控制權,可以執行任何操作。
- 系統用戶:通常用于系統服務和守護進程,通常沒有登錄權限。
用戶相關文件
/etc/passwd
:存儲用戶的基本信息,包括用戶名、UID、GID、主目錄、Shell 等。/etc/shadow
:存儲用戶的加密密碼信息。/etc/group
:存儲組的信息。
常用命令
- 添加用戶:
sudo useradd username sudo passwd username # 設置密碼
- 刪除用戶:
sudo userdel username
- 修改用戶:
sudo usermod -c "New Comment" username sudo usermod -d /new/home/directory username sudo usermod -s /bin/zsh username sudo usermod -G newgroup username # 添加到新組
- 查看用戶信息:
id username getent passwd username
2. 組管理
組相關文件
/etc/group
:存儲組的信息。/etc/gshadow
:存儲組的密碼信息。
常用命令
- 添加組:
sudo groupadd groupname
- 刪除組:
sudo groupdel groupname
- 修改組:
sudo groupmod -n newgroupname oldgroupname # 改組名
- 添加用戶到組:
sudo usermod -aG groupname username
- 查看組信息:
getent group groupname
3. 權限管理
文件權限
- 讀(Read,r):能夠查看文件內容或列出目錄內容。
- 寫(Write,w):能夠修改文件內容或在目錄中添加/刪除文件。
- 執行(Execute,x):能夠執行文件或訪問目錄。
權限表示
-
符號表示法:
-rwxr-xr--
,每個位置代表不同的權限。- 第一個字符:文件類型?
-
(文件)或?d
(目錄)。 - 接下來的三個字符:文件擁有者的權限。
- 中間的三個字符:文件所屬組的權限。
- 最后三個字符:其他用戶的權限。
- 第一個字符:文件類型?
-
八進制表示法:
0755
,每一位表示擁有者、組和其他用戶的權限。7
:rwx
(讀、寫、執行)。5
:r-x
(讀、執行)。4
:r--
(只讀)。
修改權限
chmod
?命令:修改文件或目錄的權限。chmod 755 filename chmod u+x filename # 給擁有者增加執行權限 chmod g-w filename # 給組去除寫權限 chmod o=r filename # 設置其他用戶只讀權限
修改所有者和所屬組
chown
?命令:修改文件或目錄的所有者和所屬組。sudo chown newowner filename sudo chown newowner:newgroup filename sudo chown :newgroup filename # 只修改所屬組
chgrp
?命令:只修改文件或目錄的所屬組。sudo chgrp newgroup filename
特殊權限
- Setuid:使文件以擁有者的權限執行(常用于二進制程序)。
chmod u+s filename
- Setgid:使文件以組的權限執行,或使目錄中創建的文件繼承目錄組。
chmod g+s filename chmod g+s directory
- Sticky Bit:防止非擁有者刪除目錄中的文件。
chmod +t directory
4. 示例
請看示例命令行:
# 添加用戶
sudo useradd -m -s /bin/bash newuser
sudo passwd newuser# 添加組
sudo groupadd newgroup# 將用戶添加到組
sudo usermod -aG newgroup newuser# 創建文件并設置權限
touch /tmp/testfile
sudo chmod 644 /tmp/testfile # 設置文件權限為擁有者可讀寫,其他人只讀
sudo chown newuser:newgroup /tmp/testfile # 修改文件擁有者和組
命令的詳細解釋
-
添加用戶:
sudo useradd -m -s /bin/bash newuser
效果:創建一個名為?
newuser
?的用戶,并在?/home/newuser
?下創建他的主目錄,默認 shell 為?/bin/bash
。sudo passwd newuser
效果:為?
newuser
?設置密碼,讓該用戶能夠登錄系統。sudo
:以超級用戶身份執行命令。useradd
:用于添加新用戶。-m
:創建用戶的主目錄(通常位于?/home/<username>
)。-s
:指定新用戶的默認 shell。/bin/bash
:為新用戶指定 Bash 作為默認 shell。newuser
:用戶名。passwd
:用于設置或更改用戶密碼。newuser
:用戶名。
-
添加組:
sudo groupadd newgroup
效果:創建一個名為?
newgroup
?的新組。sudo
:以超級用戶身份執行命令。groupadd
:用于添加新組。newgroup
:組名。
-
將用戶添加到組:
sudo usermod -aG newgroup newuser
效果:將用戶?
newuser
?添加到?newgroup
?組,使其成為該組的成員。sudo
:以超級用戶身份執行命令。usermod
:用于修改用戶信息。-a
:追加組信息而不是替換。-G
:指定要添加的組。newgroup
:組名。newuser
:用戶名。
-
創建文件并設置權限:
touch /tmp/testfile
效果:在?
/tmp
?目錄下創建一個名為?testfile
?的空文件。sudo chmod 644 /tmp/testfile # 設置文件權限為擁有者可讀寫,其他人只讀
效果:設置文件?
/tmp/testfile
?的權限為擁有者可讀寫,其他人只讀。sudo chown newuser:newgroup /tmp/testfile # 修改文件擁有者和組
效果:將文件?
/tmp/testfile
?的擁有者設置為?newuser
,所屬組設置為?newgroup
。touch
:用于創建空文件或更新文件的修改時間。/tmp/testfile
:文件路徑。sudo
:以超級用戶身份執行命令。chmod
:用于修改文件或目錄的權限。644
:八進制權限表示法。6
:擁有者(newuser
)具有讀和寫權限(rw-
)。4
:同組用戶具有讀權限(r--
)。4
:其他用戶具有讀權限(r--
)。
/tmp/testfile
:文件路徑。sudo
:以超級用戶身份執行命令。chown
:用于修改文件或目錄的擁有者和組。newuser:newgroup
:新擁有者和組。/tmp/testfile
:文件路徑。
權限解釋
- 文件類型:第一個字符表示文件類型,
-
?表示文件,d
?表示目錄,l
?表示鏈接等。 - 文件權限:后面九個字符表示文件權限。
- 第 1-3 位(
rwx
):文件擁有者的權限。 - 第 4-6 位(
r-x
):文件所屬組的權限。 - 第 7-9 位(
r--
):其他用戶的權限。
- 第 1-3 位(
示例:文件權限 -rw-r--r--
的含義
-
:普通文件。rw-
:文件擁有者具有讀、寫權限。r--
:文件所屬組具有讀權限。r--
:其他用戶具有讀權限。