Category: Linux

Ubuntu 設定網路固定 IP

Ubuntu 會自動偵測 DHCP 取得 IP, 如果要改成使用固定 IP, 可以使用以下方法, 並以網卡 “ens160” 作為例子。首先開啟檔案 /etc/network/interfaces: $ sudo vi /etc/network/interfaces 找到 dhcp 的一行, 並將那一行註解掉, 這樣會關閉 dhcp 自動取得 ip, 以及加入幾行網路設定, 即改成類似這樣:以上的 netmask 及 gateway 設定需要根據網路環境修改, …

Shell Script 讀取網頁內容儲存到變數

Shell Script 要讀取網頁內容,並將輸出結果儲存到變數,可以用一些在 CLI 下執行的文字瀏覽器,由於很多系統都有安裝 wget 及 curl, 以下文章會介紹使用 wget 及 curl 這兩種方法完成。如果系統並未安裝 wget 及 curl,可以用以下指令安裝,如果已經安裝了,則不用安裝:RHEL, CentOS # yum install curl wget Debian, Ubuntu $ sudo apt-get install curl wget …

curl 略過檢查自簽 SSL 憑證有效性

有時一些內部使用的加密 SSL 網頁使用自簽憑證, 如果用 curl 擷取這些使用自簽憑證的 SSL 網頁內容, 會出現以下錯誤: $ curl https://localhost/ curl: (60) Peer’s certificate issuer has been marked as not trusted by the user. More details here: http://curl.haxx.se/docs/sslcerts.html …

手動解除 Fail2ban 封鎖的 IP

Fail2ban 是十分好用的防禦暴力破解攻擊的工具, 將 Fail2ban 封鎖的 IP 解除封鎖, 只要使用 Fail2ban 內建的 fail2ban-client 即可完成。首先用 iptables 檢視被封鎖的 ip: # iptables -nvL 然後要知道被封鎖的 IP 被 Fail2ban 那一個 Jail 封鎖, 因為主機內可以設定了多個 Fail2ban jail, 用以下指令列出所有 jail: …

“> /dev/null 2>&1” 的意思

在 Unix Like 環境下用 crontab 排程執行指令或 Shell Script 時, 很多時最後都會加上 “> /dev/null 2>&1”, 例如: * * * * * /path/to/my-script.sh > /dev/null 2>&1 以下是對 “> /dev/null 2>&1” 分拆的解釋:>: 是重新導向, 例如將指令的執行結果寫入到檔案, …

Ubuntu DNS 網路設定

一般上在 Linux 下要設定 DNS 伺服器, 只要修改 /etc/reslov.conf 檔案便可以, 但在 Ubuntu 開啟 /etc/reslov.conf 時, 卻出現用註解表示的警告:那便表示不可以直接改 /etc/resolv.conf, 因為 Ubuntu 每次開機都會會將修改的內容覆蓋, 要使修改永久生效, 需要修改檔案 /etc/network/interfaces, 先開啟 /etc/network/interfaces: $ sudo vi /etc/network/interfaces 加入以下一行設定 DNS Server, …

安裝 ChangePassword 線上修改系統密碼工具

ChangePassword 是一個讓用戶線上修改系統密碼的小工具, 它是由 C 寫成的 CGI, 除了修改系統密碼外, 還未援線上修改 Samba 及 Squid 的密碼。雖然介面看上去很簡單, 但對只想給用戶修改密碼很實用, 以下是安裝方法。1. ChangePassword 只提供源始碼, 所以要先安裝 GCC:RHEL / CentOS: # yum group install “Development Tools” Debian / Ubuntu: $ …

grep 過濾 “#” 及 “;” 的註解行

很多設定檔的註解, 都會以 “#” 或 “;” 開頭, 例如以 Apache 設定檔 httpd.conf 為例, 我的 httpd.conf 有接近四百行: # wc -l httpd.conf 397 httpd.conf 想把註解過濾, 只顯示實際的設定項目, 可以用 grep 過濾以下的行:— 空白行, 即沒有任何內容 — 以 “#” …

Shell Script 檢查系統帳號是否存在

在 Shell Script 想檢查系統帳號是否存在, 可以用 grep 搜索 /etc/passwd 的內容達成, 指令是這樣:以上指令會檢查 /etc/passwd 檔案內, 是否有 “useraccount” 這個帳號存在, 其中 “^” 表示指定前面沒有任何字元, 而 “:” 則是在 /etc/passwd 用作分開每個欄位的分隔字元。上面指令執行後, 如果帳號不存在, 不會回傳任何內容, 如果帳號存在, 則會回傳在 /etc/passwd 的相關紀錄, 例如:useraccount:x:1001:1001::/home/useraccount:/bin/bash要將上面的功能放到 …