在Debian上使用FTPServer(通常是vsftpd)時,你可能希望在執行特定操作時運行自定義腳本。以下是如何自定義FTPServer腳本的步驟:
首先,確保你已經安裝了vsftpd。如果沒有安裝,可以使用以下命令進行安裝:
sudo apt update
sudo apt install vsftpd
編輯vsftpd的配置文件 /etc/vsftpd.conf,確保以下配置項存在并正確設置:
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
創建你想要在特定事件發生時執行的腳本。例如,創建一個在用戶登錄時執行的腳本:
sudo nano /etc/vsftpd/login_script.sh
在腳本中添加你想要執行的命令:
#!/bin/bash
echo "User $USER logged in at $(date)" >> /var/log/vsftpd_login.log
保存并退出編輯器,然后賦予腳本執行權限:
sudo chmod +x /etc/vsftpd/login_script.sh
編輯vsftpd的配置文件 /etc/vsftpd.conf,添加或修改以下配置項:
login_script=/etc/vsftpd/login_script.sh
為了使配置生效,重啟vsftpd服務:
sudo systemctl restart vsftpd
嘗試登錄FTP服務器,檢查日志文件 /var/log/vsftpd_login.log 是否記錄了預期的信息。
你可以為其他事件(如用戶登出、文件上傳/下載等)創建類似的腳本,并在 /etc/vsftpd.conf 中配置相應的鉤子。例如:
用戶登出:
logout_script=/etc/vsftpd/logout_script.sh
創建 /etc/vsftpd/logout_script.sh 并添加相應命令。
文件上傳:
local_umask=022
這會影響上傳文件的權限,但如果你需要更復雜的邏輯,可以考慮使用 vsftpd 的 post_upload 鉤子。
通過以上步驟,你可以在Debian上使用FTPServer(vsftpd)自定義腳本,以滿足特定的業務需求。