溫馨提示×

Ubuntu SFTP如何自定義腳本

小樊
42
2025-05-14 13:06:13
欄目: 智能運維

在Ubuntu系統中,您可以通過配置SSH服務器來實現在SFTP連接時自動執行自定義腳本。以下是實現這一功能的步驟:

  1. 創建一個自定義腳本

首先,創建一個您希望在SFTP連接時執行的腳本。例如,創建一個名為/usr/local/lib/openssh/sftp-server.d/custom-script.sh的腳本,并添加以下內容:

#!/bin/bash

# 在這里添加您希望在SFTP連接時執行的命令
echo "歡迎使用SFTP!"

# 檢查用戶是否具有寫入權限
if [ -w "$SSH_USER_HOME" ]; then
    echo "您有權限在$SSH_USER_HOME目錄中寫入文件。"
else
    echo "您沒有權限在$SSH_USER_HOME目錄中寫入文件。"
fi

# 執行其他自定義命令
# ...

確保腳本具有可執行權限:

sudo chmod +x /usr/local/lib/openssh/sftp-server.d/custom-script.sh
  1. 修改SSH配置文件

接下來,修改SSH配置文件以啟用SFTP子系統并指定自定義腳本。打開/etc/ssh/sshd_config文件:

sudo nano /etc/ssh/sshd_config

在文件末尾添加以下內容:

Subsystem sftp internal-sftp

Match group sftpusers
    ChrootDirectory %h
    ForceCommand /usr/local/lib/openssh/sftp-server.d/custom-script.sh

這里,我們創建了一個名為sftpusers的用戶組,并將需要使用自定義腳本的用戶添加到該組中。ChrootDirectory指令將用戶的根目錄限制在其主目錄中,ForceCommand指令指定在SFTP連接時執行自定義腳本。

  1. 創建用戶并分配到sftpusers

創建一個新用戶并將其添加到sftpusers組:

sudo addgroup sftpusers
sudo adduser your_username
sudo usermod -aG sftpusers your_username

your_username替換為您要創建的用戶名。

  1. 重啟SSH服務

保存并關閉sshd_config文件后,重啟SSH服務以使更改生效:

sudo systemctl restart ssh

現在,當用戶通過SFTP連接到系統時,將自動執行/usr/local/lib/openssh/sftp-server.d/custom-script.sh腳本。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女