Ubuntu虛擬機用戶權限管理指南
在Ubuntu虛擬機中,用戶權限管理是保障系統安全的核心環節,主要涉及用戶賬戶管理、權限類型配置及安全策略實施三大維度。以下是具體操作流程與最佳實踐:
使用adduser命令創建新用戶(交互式操作,自動創建主目錄):
sudo adduser username
系統會提示設置密碼及可選信息(如全名、房間號等),按需填寫即可。若需強制指定用戶組(如developers組),可添加-g參數:
sudo adduser username -g developers
使用userdel命令刪除用戶,-r參數可同時刪除主目錄及郵件文件:
sudo userdel -r username # 徹底刪除用戶及關聯數據
sudo userdel username # 僅刪除用戶賬戶(保留主目錄)
passwd命令(需管理員權限):sudo passwd username # 設置/修改用戶密碼
usermod的-l參數:sudo usermod -l new_username old_username # 更改用戶名
usermod的-c參數(修改全名等描述信息):sudo usermod -c "New Full Name" username
Ubuntu采用用戶-組-其他三級權限模型,通過usermod命令將用戶添加至特定組以賦予權限:
sudo usermod -aG sudo username # -aG表示追加至組(避免移除原有組)
groupadd命令:sudo groupadd groupname # 創建新組
groups命令:groups username # 顯示用戶所屬的所有組
chown命令(需管理員權限):sudo chown username:groupname /path/to/file # 修改文件所有者及所屬組
chmod命令(支持符號或數字表示法):
sudo chmod u+x file # 給所有者添加執行權限
sudo chmod g+w file # 給組添加寫權限
sudo chmod o-r file # 移除其他用戶的讀權限
sudo chmod 755 /home/username # 所有者有rwx權限,組及其他有r-x權限
sudo組(最常用方式):sudo usermod -aG sudo username
/etc/sudoers文件(使用visudo命令,避免語法錯誤):sudo visudo
在文件中添加以下內容,可實現無密碼sudo(謹慎使用)或限制特定命令:username ALL=(ALL) NOPASSWD: ALL # 無密碼執行所有命令
username ALL=(ALL) /usr/bin/apt # 僅允許執行apt命令
若需更細粒度的權限(如允許特定用戶訪問某文件),可使用訪問控制列表(ACL):
sudo tune2fs -o acl /dev/sdXn # 替換為實際分區(如/dev/sda1)
setfacl命令:sudo setfacl -m u:username:rwx /path/to/file # 給用戶添加rwx權限
sudo setfacl -m g:groupname:r-x /path/to/dir # 給組添加r-x權限
getfacl命令:getfacl /path/to/file
禁止root遠程登錄:編輯SSH配置文件(/etc/ssh/sshd_config),設置:
PermitRootLogin no # 禁止root用戶通過SSH登錄
PasswordAuthentication yes # 允許密碼認證(若需密鑰認證,可設為no)
修改后重啟SSH服務:
sudo systemctl restart sshd
定期審查權限:使用以下命令查看用戶及組信息,及時清理閑置賬戶:
cat /etc/passwd # 查看所有用戶
cat /etc/group # 查看所有組
sudo passwd -S username # 查看用戶狀態(是否鎖定)
設置強密碼策略:使用pwquality工具(Ubuntu默認安裝)配置密碼復雜度:
sudo nano /etc/security/pwquality.conf
修改以下參數(示例):
minlen = 12 # 最小長度12位
dcredit = -1 # 至少1個數字
ucredit = -1 # 至少1個大寫字母
lcredit = -1 # 至少1個小寫字母
ocredit = -1 # 至少1個特殊字符
通過以上步驟,可實現對Ubuntu虛擬機用戶權限的有效管理,兼顧系統安全性與用戶靈活性。