Linux 系統管理員日常工作包含使用者許可權控管、系統日誌分析、背景程式操作、網路設定與診斷等。有效運用 sudo 指令管理使用者許可權,避免直接使用 root 許可權操作,能提升系統安全性。透過 syslog 和相關工具監控系統事件,有助於及時發現並處理潛在問題。熟練掌握背景程式管理技巧,能提升工作效率。shutdown 和 reboot 指令則用於控制系統的關閉和重啟。網路故障排除工具如 ping、traceroute、mtr 等,可協助診斷網路連線問題。lscpu、lshw 等指令可快速取得硬體資訊。upower 和 acpi 則提供電池狀態和電源管理資訊。最後,熟悉套件管理工具,例如 apt 和 yum,對於安裝、更新和移除軟體至關重要。
管理系統管理員與使用者通知
在建立使用者之後,可以授予他們對作業系統的 root 許可權,以便他們能夠執行較低層級的系統任務(例如維護安全性、硬體等)。必須謹慎地授予此許可權,因為這意味著他們可以在本機或遠端系統上執行任何操作。
授予 Root 許可權的方法
一般有兩種方法可以實作這一目標。第一種方法是讓使用者始終以 root 許可權執行命令,但這種方法並不推薦,因為它存在安全風險。例如,如果使用者的帳戶中存在惡意軟體,惡意軟體現在就可以執行任何想要的操作。
第二種方法是使用 sudo 命令,推薦使用此方法。sudo 命令允許普通使用者帳戶臨時提升命令的許可權,以 root 層級執行。這是一個安全功能,因此您不必一直以 root 身份執行。
使用 sudo 命令
要檢視 sudoers 檔案中的所有使用者,請輸入:
sudo cat /etc/sudoers
sudoers 檔案允許您控制誰可以使用 sudo 命令。要存取此命令需要 root 許可權。較新的發行版可能具有安全性群組,例如 sudo 或 root,這些群組在 sudoers 檔案中被參考,這將允許您控制誰可以存取此檔案。
要檢視 sudo 群組中的所有使用者,請輸入:
awk -F':' '/sudo/{print $4}' /etc/group
有一個名為 visudo 的命令允許您編輯 sudoers 檔案。它還會檢查檔案的語法,以確保您不會因為損壞的 sudoers 檔案而被鎖定在外。要執行此命令,請輸入:
sudo visudo
將使用者新增至 sudoers 檔案
要將使用者新增至 /etc/sudoers 檔案的末尾,請輸入:
sudo echo 'user_name ALL=(ALL:ALL) ALL' >> /etc/sudoers
使用者通知
如果您需要向登入本機或遠端系統的使用者傳送通知,可以使用 write 命令在使用者主控台畫面上顯示訊息。
要向同一個系統上的其他使用者寫入訊息,請輸入:
write user_name
開始命令後,您可以向使用者寫入訊息,該訊息將顯示在他們的終端機上,完成後按 Ctrl+D。
管理 Syslog 與監控日誌檔
當系統或應用程式需要寫入事件(例如警告、警示、資訊等)時,它會將它們寫入系統日誌(即 syslog)。
檢視 Syslog 內容
要檢查 syslog 的內容,請輸入:
less /var/log/syslog
/var/log/ 目錄中還有其他與系統相關的日誌檔。要檢視所有這些日誌檔,請輸入:
ls -l /var/log/*.log
要找出 syslog 的位置,請輸入:
less /etc/syslog.conf
或者,也可能是 /etc/rsyslog.conf,取決於發行版。
將訊息傳送至 Syslog
要將訊息傳送至 syslogd,請輸入:
echo HelloWorld | logger
監控日誌檔
Linux 提供多種不同的工具來搜尋和顯示日誌檔。以下是一些基本工具:
要檢視日誌檔的最後幾行,請輸入:
tail /var/log/syslog
要持續顯示日誌檔的最新變更,請輸入:
tail -f /var/log/syslog
背景與前景作業管理
在終端機中,命令會串列執行,這意味著您必須等待第一個命令完成才能執行下一個命令。如果一個命令執行時間很長,這可能會很惱人。
要將命令放在背景執行(在命令末尾使用和號 &),請輸入:
tree / > ~/output_file.txt &
檢視背景作業
要檢視所有在背景執行的命令,請輸入:
jobs
要將已停止的程式(使用 Ctrl+Z)送到背景執行,請輸入:
bg
要將在背景執行的命令帶到前景,請輸入:
fg
按 Ctrl+Z 可暫停應用程式,輸入 fg 可重新啟動應用程式,或輸入 bg 可在背景執行。
關閉與重新啟動系統
本文主要介紹如何重新啟動和關閉本機或遠端系統。使用這些命令時請謹慎,因為它們將停止所有程式,直到系統重新啟動。
要關閉(或停止)系統,請輸入:
sudo shutdown -h now
要重新啟動系統,請輸入:
sudo shutdown -r now
要取消關機,請輸入:
sudo shutdown -c
網路故障排除工具
這些工具將幫助您排除本機和遠端系統的網路問題。
檢查基本連線能力
要檢查從本機系統到遠端系統的基本連線能力(按 Ctrl+C 停止),請輸入:
ping example.com
如果上述命令不起作用,請檢查其他事項。確保本機系統具有 IP 位址(如果顯示不正確,可能存在網路設定問題)。
測試 DNS 連線能力
要測試 DNS 連線能力,請嘗試 ping 一個遠端資源,如果無法解析,請檢查您的 DNS 設定(或您的 DNS 伺服器是否關閉),請輸入:
ping google.com
顯示網路路由路徑
要顯示封包到達目的地的網路路由路徑(即跳躍),請輸入:
traceroute example.com
追蹤系統連線速度
要追蹤系統連線的速度,請輸入:
mtr -report example.com
列出開放的網路埠
要列出系統上處於監聽狀態的開放網路埠,請輸入:
netstat -lnp
檢視 HOSTS 檔案內容
要檢視 HOSTS 檔案(它會覆寫本機主機上的 DNS),請確保檔案中沒有阻止連線的條目, 請輸入:
cat /etc/hosts
#### 內容解密:
- 在這裡我們討論瞭如何管理管理員和使用者通知、syslog、背景和前景作業、關閉和重新啟動以及網路故障排除工具。
- 管理員應謹慎授予 root 許可權,因為這可能會帶來安全風險。
- 使用
sudo命令可以臨時提升許可權,這是一種更安全的做法。 - syslog 用於記錄系統和應用程式事件,可以用各種工具進行監控。
- 背景和前景作業管理允許更靈活地使用終端。
- 網路故障排除工具幫助診斷和解決網路問題。
Linux 系統管理與網路工具
管理 HOSTS 檔案與網路設定
在 Linux 系統中,HOSTS 檔案的管理是網路設定的重要一環。要編輯 HOSTS 檔案,可以使用以下指令:
sudo nano /etc/hosts
這個檔案用於將主機名稱對映到 IP 位址,是網路設定的基礎。
DNS 設定與網路工具的演變
/etc/resolv.conf 檔案包含了本機使用的 Domain Name Servers (DNS) 清單。瞭解 DNS 設定對於網路通訊至關重要。
舊式與新式網路管理工具
過去常用的網路管理工具如 ifconfig 已逐漸被新工具取代,例如 ip 指令。traceroute 也被 mtr 取代,後者結合了 traceroute 和 ping 的功能,提供更全面的網路診斷。
舊式方法:使用 ifconfig
檢視本機的 TCP/IP 設定:
ifconfig
停用網路介面卡:
ifdown eth1
啟用網路介面卡:
ifup eth1
檢視無線網路介面卡資訊:
iwconfig
若無線網路工具未安裝,可使用以下指令安裝:
sudo apt-get install wireless-tools
或
sudo yum install wireless-tools
新式方法:使用 ip
ip 是一個用於顯示和修改路由、裝置、策略路由和隧道的實用工具。
顯示本機 IP 摘要資訊:
ip addr show
內容解密:
ip addr show指令用於顯示本機所有網路介面的 IP 位址資訊。- 這包括了 IPv4 和 IPv6 位址,以及介面的狀態。
- 該指令對於快速瞭解本機網路組態非常有用。
顯示所有啟用的網路連線:
ip link ls up
檢視特定網路介面的 IP 資訊:
ip addr show eth1
內容解密:
ip addr show eth1用於顯示特定網路介面(此例中為 eth1)的詳細 IP 組態。- 這有助於管理員檢查特定介面的設定。
顯示 IPv4 資訊:
ip -4 a
啟用或停用網路介面:
sudo ip link set eth1 up
sudo ip link set eth1 down
內容解密:
sudo ip link set eth1 up/down用於控制指定網路介面(此例中為 eth1)的啟用或停用狀態。- 這對於網路故障排除或維護非常有用。
顯示路由表:
ip route show
新增或刪除靜態 IP 位址:
sudo ip addr add 192.168.0.100/24 dev eth1
sudo ip addr del 192.168.0.100/24 dev eth1
內容解密:
sudo ip addr add/del 192.168.0.100/24 dev eth1用於在指定網路介面上新增或刪除靜態 IP 位址。- 正確管理靜態 IP 位址對於網路組態至關重要。
遠端主機管理與檔案傳輸
使用 SSH 和 SCP
SSH(Secure Shell)是一種安全的遠端登入工具,而 SCP(Secure Copy)則用於安全地傳輸檔案。
遠端登入到另一台主機:
ssh user@hostaddress
建立 SSH 登入別名(並自動加入 .bash_aliases):
echo alias jane=\'ssh user@hostaddress\' >> ~/.bash_aliases; source ~/.bash_aliases
啟用 SSH 主機的 Tab 自動補完功能:
complete -W "$(echo $(grep '^ssh ' .bash_history | sort -u | sed 's/^ssh //'))" ssh
安全地上傳檔案到遠端伺服器:
scp file_name.tar.gz [email protected]:/path/to/directory/
內容解密:
scp file_name.tar.gz [email protected]:/path/to/directory/用於將檔案安全地傳輸到遠端伺服器的指定目錄。- 這需要遠端伺服器上已安裝並正確組態 SSH 服務。
軟體套件管理
Linux 發行版通常使用套件管理器來安裝、更新和移除軟體。常見的套件管理器包括 apt(Debian 系統)、yum(Fedora 系統)和 zipper(SUSE 系統)。
基本套件管理指令
列出已安裝的套件(Debian 系統):
dpkg -l
搜尋特定的套件(Debian 系統):
sudo apt-cache search zip
取得特定套件的詳細資訊(Debian 系統):
sudo apt-cache show zip
內容解密:
sudo apt-cache search/show zip用於搜尋或顯示特定套件的資訊。- 這有助於使用者在安裝前瞭解套件的功能和依賴關係。
更新系統與清理本地儲存空間
更新套件函式庫和升級系統是保持系統安全性和穩定性的關鍵步驟。定期清理本地儲存空間也可以釋放寶貴的磁碟空間。
系統更新與清理
更新系統
使用 apt-get 更新 Debian 系統的套件函式庫和升級系統:
apt-get update
apt-get upgrade
apt-get dist-upgrade
使用 yum 更新 Fedora 系統的套件函式庫和升級系統:
yum update
yum upgrade
清理本地儲存空間
檢查和清理 APT 快取:
sudo apt-get check
sudo apt-get clean
sudo apt-get autoclean
移除不需要的軟體包和核心版本:
sudo apt-get autoremove --purge
sudo apt-get remove linux-image-KERNAL_VERSION
內容解密:
sudo apt-get autoremove --purge用於移除不再需要的軟體包和核心版本,釋放磁碟空間。- 正確清理系統可以保持系統的整潔和高效執行。
綜上所述,Linux 系統管理涉及多個方面,包括網路設定、遠端管理、軟體套件管理和系統維護。掌握相關的指令和工具對於有效管理 Linux 系統至關重要。
清理孤立套件
當你安裝了一個名為 some_program 的套件,而它依賴了一個名為 some_lib 的函式庫時,這個函式庫通常會在安裝 some_program 時自動下載。然而,當你移除 some_program 後,解除安裝程式可能會讓 some_lib 仍然保留在系統中。如此一來,some_lib 就變成了孤立套件,因為系統中沒有其他程式依賴它來執行。
要移除不再需要的套件和依賴項,請輸入:
sudo apt-get autoremove
另外,有一個名為 gtkorphan 的圖形介面工具可以用來移除孤立套件。如果尚未安裝,請輸入:
sudo apt-get install gtkorphan
內容解密:
sudo apt-get autoremove:此命令用於移除系統中不再需要的套件和依賴項,幫助保持系統的清潔和高效。gtkorphan:這是一個圖形介面工具,專門用於識別和移除孤立套件,讓使用者能夠更直覺地管理系統中的套件。
硬體資訊
以下列出的工具能夠顯示與本地系統(無論是實體還是虛擬硬體)相關的技術資訊。當你需要編寫指令碼來告知使用者當前作業系統可用的周邊裝置時,這些資訊將非常有用。
要檢視CPU的技術資訊,請輸入:
lscpu
顯示電腦硬體資訊,請輸入:
lshw
列出硬體抽象層(HAL)所知的所有裝置,請輸入:
lshal
檢視所有連線到USB匯流排的裝置,請輸入:
lsusb
檢視所有連線到PCI匯流排的裝置,請輸入:
lspci
顯示區塊裝置的資訊,請輸入:
lsblk
內容解密:
lscpu:顯示CPU的架構資訊,如核心數、執行緒數、快取大小等。lshw:提供詳細的硬體組態資訊,包括主機板、記憶體、CPU等。lshal、lsusb、lspci、lsblk:這些命令分別用於列出HAL所知的裝置、USB裝置、PCI裝置和區塊裝置的資訊,有助於瞭解系統的硬體組成。
電池狀態與溫度監控
Linux系統允許你從ACPI(高階組態和電源介面)取得電源系統的資訊,包括電池狀態。ACPI是一項產業規範,旨在實作電腦能耗的高效管理。
有幾種工具和檔案系統方法可用於管理和取得來自該子系統的資訊。
upower:提供了一個介面來列舉電源並控制系統範圍內的電源管理。
例如:upower -i
如果尚未安裝,請輸入:
sudo apt-get install upower
或
sudo yum install upower
acpi:顯示ACPI資訊(如電池和電源資訊),使用來自/proc和/sys目錄的資料。
例如:acpi -V
如果尚未安裝,請輸入:
sudo apt-get install acpitool
或
sudo yum install acpitool
/sys/class/power_supply/battery:儲存有關裝置電池的ACPI資訊。
內容解密:
upower和acpi:這兩個工具提供了查詢電池狀態和電源管理資訊的功能,有助於監控和管理筆記型電腦或其他行動裝置的能耗。/sys/class/power_supply/battery:這是一個虛擬檔案系統,提供了電池狀態的詳細資訊。
Linux診斷工具
下列工具簡要介紹了一些可用於檢查系統狀況的工具。這些工具能夠幫助你隔離硬體、作業系統和檔案系統的不同問題。
要檢查鍵盤是否正常運作,或顯示按鍵的ASCII碼,請輸入:
showkey -a
內容解密:
showkey -a:此命令用於測試鍵盤的功能,按下鍵盤上的按鍵會顯示對應的ASCII碼,按下Ctrl+D可停止程式。
強制在下次開機時檢查檔案系統,請輸入:
sudo touch /forcefsck
顯示是否有任何未寫入磁碟的資料,請輸入:
grep ^Dirty /proc/meminfo
內容解密:
sudo touch /forcefsck:建立一個名為/forcefsck的檔案,指示系統在下次啟動時進行檔案系統檢查。grep ^Dirty /proc/meminfo:查詢目前有多少資料仍在記憶體中等待寫入磁碟,有助於判斷是否可能有資料遺失的風險。