首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

Solaris 用戶與檔案權限管理完整指南

     編輯:Oracle 教學

Solaris 用戶與檔案權限管理完整指南

Solaris 採用傳統 Unix 離散存取控制 (DAC) 模型,結合 RBAC (Role-Based Access Control) 提供彈性的權限管理。本文系統整理用戶/群組生命週期、檔案權限模型、特殊權限位與實務操作。

用戶與群組核心概念

用戶/群組管理指令

# 群組管理
groupadd -g 103 test1           # 建立群組指定 GID
groupmod -n newname oldname     # 重命名
groupmod -g 104 test1           # 修改 GID
groupdel test1                  # 刪除群組

# 用戶管理
useradd -u 200 -g 10 -G 103 -d /export/home/user -m -s /bin/bash -c "Description" username
# -u UID  -g 主群組  -G 附加群組  -d 家目錄  -m 建立家目錄  -s Shell  -c 註解

usermod -u 201 username         # 修改 UID
usermod -l newname oldname      # 重命名登入名
usermod -G 104 username         # 變更附加群組(覆蓋)
usermod -a -G 105 username      # 追加附加群組
usermod -L username             # 鎖定帳號
usermod -U username             # 解鎖帳號

passwd username                 # 設定密碼
passwd -l username              # 鎖定密碼
passwd -u username              # 解鎖密碼

userdel -r username             # 刪除用戶含家目錄

# 查詢驗證
id username                     # 顯示 UID/GID/群組
groups username                 # 顯示所屬群組
getent passwd username          # 查詢用戶資料庫
getent group groupname          # 查詢群組資料庫

關鍵設定檔

類型說明UID/GID 範圍
超級用戶 (root)系統完全控制權0
系統/程序用戶服務運行帳號,無登入 Shell1-99 (傳統)、100-999 (現代)
一般用戶互動登入,僅控制家目錄1000+ (現代)
檔案用途關鍵欄位
/etc/passwd用戶基本資訊用戶名:密碼佔位:x:UID:GID:註解:家目錄:Shell
/etc/shadow加密密碼與有效期用戶名:加密密碼:最後修改:最小/最大/警告/非活動/過期天數
/etc/group群組定義群組名:密碼佔位:GID:成員列表
/etc/default/useradduseradd 預設值GROUP, HOME, INACTIVE, EXPIRE, SHELL, SKEL

檔案權限模型

基本權限位

# ls -l 輸出格式
-rwxr-xr--  1 user1  group1  1024  Jan 1 10:00 file.txt
│││││││││
│││││││└─ 其他用戶:r-- (讀取)
││││││└──── 其他用戶:- (無寫入)
│││││└───── 其他用戶:- (無執行)
││││└────── 群組用戶:r-x (讀/執行)
│││└─────── 群組用戶:- (無寫入)
││└──────── 擁有者:rwx (讀/寫/執行)
│└───────── 檔案類型:- 一般檔案、d 目錄、l 符號連結、b/c 區塊/字元裝置、s socket、p 管道
└────────── (保留位,如 setuid/setgid/sticky)

數字模式權限

數值權限二進位
4讀取100
2寫入010
1執行001
7rwx111
6rw-110
5r-x101

預設權限:檔案 644 (rw-r--r--)、目錄 755 (rwxr-xr-x)

權限管理指令

# 符號模式
chmod u+x file           # 擁有者加執行
chmod g-w file           # 群組減寫入
chmod o=r file           # 其他設為唯讀
chmod a+rX dir           # 所有人加讀取,目錄加執行

# 數字模式
chmod 750 file           # rwxr-x---
chmod -R 750 dir/        # 遞迴修改

# 擁有權變更
chown user1 file         # 變更擁有者
chown :group1 file       # 變更群組
chown user1:group1 file  # 同時變更
chown -R user1:group1 dir/  # 遞迴

# 預設權限遮罩
umask 022                # 預設遮罩,新檔案=666-022=644,新目錄=777-022=755
umask -S                 # 符號模式顯示:u=rwx,g=rx,o=rx

特殊權限位

權限位符號數值檔案效果目錄效果設定指令
SetUIDs (擁有者執行位)4000執行時以擁有者權限運行無效chmod 4755 / chmod u+s
SetGIDs (群組執行位)2000執行時以群組權限運行新建檔案繼承目錄群組chmod 2755 / chmod g+s
Sticky Bitt (其他執行位)1000無效 (舊系統限刪除)僅擁有者/root可刪除檔案chmod 1777 / chmod +t

典型應用場景

  • SetUID:/usr/bin/passwd、/usr/bin/su 需 root 權限修改 /etc/shadow
  • SetGID 目錄:專案共享目錄 chmod 2770 /proj; chgrp projteam /proj,新檔自動屬 projteam
  • Sticky Bit:/tmp、/var/tmp 防止用戶誤刪他人檔案

進階權限:ACL (Access Control List)

Solaris 支援 POSIX.1e ACL,提供比傳統 rwx 更細粒度的控制:

# 設定 ACL
setfacl -m u:user2:rwx file      # 給 user2 rwx
setfacl -m g:group2:rx file      # 給 group2 rx
setfacl -m m::rwx file           # 設定遮罩
setfacl -m o::- file             # 其他無權限

# 查看 ACL
getfacl file

# 移除 ACL
setfacl -x u:user2 file          # 移除特定規則
setfacl -b file                  # 移除所有 ACL

# 預設 ACL (目錄遺傳)
setfacl -d -m u:user2:rwx dir/   # 目錄下新建檔自動套用

RBAC 角色基礎存取控制

Solaris RBAC 允許將特權指令授予角色,用戶切換角色執行:

# 角色建立與授權
roleadd -c "Backup Operator" -m -d /export/home/backupop -s /bin/pfksh backupop
usermod -R backupop user1        # 給 user1 backupop 角色
passwd backupop                  # 設定角色密碼

# 權限配置檔 /etc/user_attr
# backupop::::type=role;profiles=Media Backup

# 執行特權指令
su - backupop                    # 切換角色
pfexec /usr/sbin/ufsdump ...     # 執行授權指令
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved