# Linux系統怎么修改權限與默認權限
## 一、Linux權限基礎概念
在Linux系統中,每個文件和目錄都有三組權限設置,分別對應三種用戶身份:
1. **所有者(User)**:文件/目錄的創建者
2. **所屬組(Group)**:文件/目錄所屬的用戶組
3. **其他用戶(Others)**:既不是所有者也不在所屬組的用戶
每組權限包含三種基本權限:
- **r (read)**:讀取權限
- **w (write)**:寫入權限
- **x (execute)**:執行權限
權限的表示方式有兩種:
- 字母表示法:如`rwxr-xr--`
- 數字表示法:如`755`(r=4, w=2, x=1)
## 二、修改文件/目錄權限
### 1. chmod命令
`chmod`是修改權限的主要命令,有兩種使用方式:
#### 字母模式
```bash
chmod [ugoa][+-=][rwx] 文件名
示例:
chmod u+x script.sh # 給所有者添加執行權限
chmod go-w file.txt # 移除組和其他用戶的寫權限
chmod a=rw config.cfg # 設置所有用戶為讀寫權限
chmod 數字權限 文件名
示例:
chmod 755 script.sh # 所有者rwx,組和其他用戶rx
chmod 644 file.txt # 所有者rw,組和其他用戶r
Linux還有三種特殊權限: - SUID (4):執行時以所有者身份運行 - SGID (2):目錄下新建文件繼承組ID - Sticky Bit (1):只有所有者能刪除/重命名
設置方法:
chmod 4755 file # 設置SUID
chmod 2755 dir # 設置SGID
chmod 1777 /tmp # 設置Sticky Bit(典型/tmp目錄設置)
chown 用戶名:組名 文件名
示例:
chown root:admin server.cfg # 修改所有者和組
chown :developers *.py # 只修改組
chown -R www:www /var/www # -R遞歸修改目錄下所有文件
chgrp 組名 文件名
umask值決定了新建文件和目錄的默認權限,通過”屏蔽”特定權限位實現: - 默認文件權限:666 - umask - 默認目錄權限:777 - umask
umask # 顯示當前值(如0022)
umask -S # 符號顯示(u=rwx,g=rx,o=rx)
umask 0027 # 設置新umask值
編輯shell配置文件(如~/.bashrc或/etc/profile):
# 對于所有用戶
echo "umask 0022" >> /etc/profile
# 對于特定用戶
echo "umask 0027" >> ~/.bashrc
umask 0022
(新文件644,目錄755)umask 0027
(新文件640,目錄750)umask 0002
(新文件664,目錄775)當基本權限不能滿足需求時,可以使用ACL(訪問控制列表):
mount | grep acl # 確認文件系統已掛載acl選項
setfacl -m u:用戶名:權限 文件名
setfacl -m g:組名:權限 文件名
示例:
setfacl -m u:testuser:rwx project/
setfacl -m g:developers:r-x /src/
getfacl 文件名
setfacl -d -m u:用戶名:權限 目錄名
find
命令檢查異常權限find / -perm -4000 -type f # 查找所有SUID文件
find / -perm -2000 -type f # 查找所有SGID文件
通過合理設置權限和默認權限,可以有效保障Linux系統的安全性和可用性。建議管理員根據實際業務需求,制定適合的權限策略。 “`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。