Linux 修改系統帳號使用者名稱及 UID

在 Linux 要修改系統帳號的使用者名稱或 UID, 需要使用 usermod 指令完成。以下是在 Linux 下修改使用者名稱、UID、使用者家目錄的方法。 在修改使用者名稱前, 需要先確定該帳號目前並沒有登入, 以及沒有 process 正在執行, 如果帳號已經登入或有 process 正在執行, 使用 usermod 後會出現以下錯誤: usermod: user tom is currently used by process xxxx …

Linux 安裝及使用 netstat

Netstat 的全寫是 network statistics, 是分析網路流量的指令, 例如可以檢視開啟了的埠號或遠端連線的 IP 及 Routing table 等。 本文是關於在 Linux 下安裝 netstat, 及 netstat 的基本應用。 現在多數的 Linux 發行版預設沒有安裝 netstat, 執行 netstat 會出現以下錯誤: netstat: command not found …

CentOS 8 關閉 Firewalld 及 SELinux

CentOS 8 的 SELinux 及 Firewalld 防火牆都是安全相關的套件, RHEL 及 CentOS 均預設開啟, 一般情況下開啟防火牆可以防止未知的服務開啟埠號, 但如果在開發或測試的機器上, 將它們關閉對除錯方便不少, 以下是在 CentOS 8 關閉防火牆及 SELinux 的方法。 檢查 SELinux 是否開啟 執行 sestatus 指令可以檢視目前 SELinux 的狀態, 其中一項是是否有開啟, …

Linux 清除 DNS 快取

DNS 的作用是將網域解譯成 IP 地址, 為了使連線更有效率, 系統不會每次也向 DNS 伺服器查詢 IP, 而會在本機把網域的 IP 儲存在快取。 但如果網域的 IP 已經更新, 用 nslookup 查詢也看到新的 IP, 但用瀏覽器還是連到舊的 IP, 這樣可能是因為系統或瀏覽器的快取還未更新。如果是瀏覽器的 DNS 快取, 可以參考 Chrome, Firefox 及 Safari …

Linux 禁止普通帳號檢視 dmesg 內容

Linux kernel 會將開機訊息儲存在 ring buffer, 如果開機後想檢視開機的訊息, 可以用 dmesg 指令查看, 或者檢視 /var/log/dmesg 檔案的內容. 執行 dmesg 不用 root 權限, 普通帳號也能執行: $ dmesg 如果想禁止普通帳號檢視開機訊息, 可以設定 kernel 的 dmesg_restrict 變數: $ sudo sysctl …

Redhat / CentOS 8 更改 hostname

以前的 Redhat 及 CentOS 要更改 hostname 可以修改 /etc/sysconfig/network, 或用 hostname 指令設定。Centos 7 及 CentOS 8 改用了新的方法, 現在是用 hostnamectl 指令修改系統的 hostname。 檢查主機 hostname: # hostnamectl 會列出目前使用的 hostname, 要修也是使用 hostnamectl 指令: …

CentOS 8 安裝 EPEL

CentOS 8 安裝 EPEL Repo 後, 安裝一些 CentOS 沒有內建的套件會方便很多, 而在 CentOS 8 安裝 EPEL 也很簡單, 以下是安裝方法。 $ sudo yum install epel-release 最後開啟 PowerTools Repo: $ sudo yum config-manager –set-enabled …

ModSecurity 停用個別規則

ModSecurity 可以阻擋多種針對網站的攻擊, 但有些網頁應用程式會跟 ModSecurity 互相沖突, 如果為了個別幾個規則便把 ModSecurity 停用, 給 VirtualHost 設定 “SecRuleEngine Off”, 這樣十分不必要。較好的做法是找出與網頁程式互相沖突的規則, 然後在個別目錄或 VirtualHost 停用。 以下會假設已經安裝及設定好 ModSecurity, 然後找出有問題的規則, 並用 SecRuleRemoveById 把有問題的規則停用。 例如 HTTPD 的錯誤檔在 /var/log/httpd/error.log, 執行以下指令可以找出 ModSecurity …

PHP 設定預設編碼

PHP 5.6 開始加入了預設編碼的設定, 預設是使用 UTF-8, 這對於大多數網站都不會有問題, 但對於一些還是使用 Big5 編碼的老舊網站, 沒有設定好便會出現亂碼。 如果要整台伺服器設定, 開啟 php.ini 後, 找到 default_charset 一行: default_charset = “UTF-8” 改成: default_charset = “Big5” 然後需要重新啟動 httpd. 如果不能改 php.ini, 便要根據主機是使用 …