標籤彙整: Linux

500 OOPS: vsftpd: refusing to run with writable root inside chroot()

vsftpd 在尚未出現帳號登入提示前,就出現 500 OOPS: vsftpd: refusing to run with writable root inside chroot() 的錯誤訊息,是因為 vsftpd 為了增強安全,當帳號可使用 chroot() 目錄時,該目錄就不得為可寫入(writeable)。

而在尚未出現使用者帳號登入提示前,就出現該錯誤,要去修改 secure_chroot_dir 的寫入權限,在 /etc/vsftpd.conf 裡面會指定 secure_chroot_dir 的位置:

secure_chroot_dir=/var/run/vsftpd/empty

將該目錄的寫入權限移除,該目錄只要移除 other 的 w 權限,然後重啟 vsftpd 服務即可:

#chmod o-w secure_chroot_dir=/var/run/vsftpd/empty
#service vsftpd restart

閱讀全文

systemctl status 訊息被截斷

使用 systemctl status 查詢服務狀態時,有時服務出現錯誤會有錯誤訊息,但常常會因螢幕寬度的問題,文字被截斷,可使用:

#systemctl status --no-pager --full

這樣訊息會全部顯示,不會被截斷了。

利用 firewall-cmd 建立封包轉送並記錄機制

使用 firewll-cmd 建立封包 forward 機制,可使用:
#firewall-cmd --permanent --add-forward
#firewall-cmd --permanent --add-masquerade
#firewall-cmd --permanent --add-forward-port=port=53:proto=udp:toport=53:toaddr=8.8.8.8
#firewall-cmd --reload

上面的指令,可以將DNS查詢的封包,全部轉送到Google DNS去。
閱讀全文

grep 使用正規表示式找 IPv4 及 IPv6 位址

IPv4:

grep -Eo "([0-9]{1,3}[.]){3}[0-9]{1,3}" filename

IPv6:

grep -Eo "([0-9a-fA-F]{4}[:])([0-9a-fA-F]{0,4}[:]){0,6}([0-9a-fA-F]{0,4})" filename

因為目前有效的IPv6格式,前置為 2001、ff80、ff02,所以使用 ([0-9a-fA-F]{4}[:]) 做為開頭 (排除 ::1 格式)。

在中文語系環境中讓用英文格式回傳結果,以 date 為例

有時在寫 BASH Script 時,會用 date 查詢時間,在中文環境中的結果會是中文格式:

# date
五 11月 15 11:45:01 CST 2019

需求是要英文格式,但又不想用 # export LC_TIME=en_US.utf8 改變環境設定,可以用以下方式:

# LC_TIME=en_US date
Fri Nov 15 11:47:53 CST 2019

利用這種方式,LC_TIME=en_US 只會作用在該行指令,而不會影響系統的環境設定。

 

Linux 加入 AD

需求:在 AD 統一控管帳號之環境中,將 Linux 伺服器加入 AD,以使 Domain Admins 群組成員可以登入操作 Linux 伺服器,毋須於 Linux 系統中另行建置帳號。

一、安裝需求套件:
# yum install -y samba samba-common samba-winbind krb5-workstation ntp

二、設定開機時啟動服務:
# chkconfig smb on
# chkconfig winbind on

三、修改 /etc/hosts :
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
123.123.123.123 myhost myhost.mydomain.com.tw
2001:1234:1234:1234::123 myhost myhost.mydomain.com.tw

閱讀全文