對于系統管理員和開發人員而言,掌握Linux技術不僅是職業發展的必備條件,更是提升工作效率和解決問題能力的關鍵
本文將深入探討幾道經典的Linux技術題,旨在幫助讀者深入理解Linux系統的核心原理,并掌握一系列高效的管理和故障排除技巧
1.深入理解Linux文件系統與權限管理 問題描述: 假設你負責管理一臺運行著CentOS 7的服務器,服務器上存儲著多個重要項目和數據庫備份
你需要創建一個新用戶“backupuser”,并為其分配一個專用目錄/backup,同時確保該用戶只能訪問自己的目錄,無法訪問系統其他部分
如何實現這一目標? 解決方案: 首先,使用`useradd`命令創建新用戶: sudo useradd -m backupuser `-m`參數會為新用戶創建一個主目錄,通常是`/home/backupuser`
但我們需要的是`/backup`,所以接下來手動創建目錄并更改所有權: sudo mkdir /backup sudo chown backupuser:backupuser /backup 接下來,設置目錄權限,使得`backupuser`只能訪問該目錄,且不能修改其父目錄的權限(防止“權限提升”攻擊): sudo chmod 700 /backup sudo chmod u+s /bin/chown 這一步是為了防止后續可能出現的權限問題,但需謹慎使用,因為它改變了chown的默認行為 注意:`sudo chmod u+s /bin/chown`雖然有時用于特定場景下的權限修復,但通常不推薦在生產環境中使用,因為它可能帶來安全風險
更安全的做法是通過精確的文件系統布局和ACL(訪問控制列表)來管理權限
為了限制`backupuser`訪問系統其他部分,可以調整其shell為受限的shell,如`/sbin/nologin`或`/usr/sbin/rbash`(如果系統支持): sudo usermod -s /sbin/nologin backupuser 但這種方式會阻止用戶登錄,如果仍需要用戶通過SSH登錄進行備份操作,則需采用其他方法限制其活動范圍,比如使用SSH的`Chroot`環境或配置`sudo`規則嚴格限制命令執行
深入理解: Linux文件系統權限管理基于三種基本權限(讀r、寫w、執行x)和用戶類別(所有者、所屬組、其他用戶)
掌握`ls -l`查看權限、`chmod`修改權限、`chown`和`chgrp`更改所有者和組是管理Linux系統的基礎
此外,了解SELinux(安全增強型Linux)和AppArmor等高級安全模塊,能進一步提升系統的安全性
2.進程管理與資源監控 問題描述: 服務器上運行著多個關鍵服務,近期發現系統響應變慢,懷疑有某個進程占用了大量CPU或內存資源
如何快速定位并處理這個問題? 解決方案: 首先,使用`top`或`htop`命令查看當前系統的資源使用情況
`top`是Linux自帶的資源監控工具,而`htop`是其增強版,提供了更友好的界面和更多功能(需預先安裝)
top 或 htop 在`top`或`htop`界面中,可以按`P`鍵按CPU使用率排序,或按`M`鍵按內存使用率排序,從而快速找到資源消耗高的進程
一旦確定了問題進程,可以使用`kill`命令終止它,或者使用`kill -9`強制終止(謹慎使用,因為它不允許進程進行任何清理工作): sudo kill PID 或 sudo kill -9 PID 其中,`PID`是問題進程的進程ID
深入理解: 除了`top`和`htop`,還有其他工具如`ps`(顯示當前活動進程)、`pgrep`(根據名稱查找進程ID)、`pstree