溫馨提示×

centos sftp如何自定義腳本執行

小樊
49
2025-07-28 20:47:09
欄目: 智能運維

在CentOS系統中,如果你想要在使用SFTP時自動執行一個自定義腳本,可以通過修改sshd配置文件來實現。以下是一個基本的步驟指南:

  1. 創建自定義腳本: 首先,你需要創建一個你想要在SFTP連接時執行的腳本。這個腳本應該放在服務器上的某個位置,并且確保它有執行權限。

    #!/bin/bash
    echo "SFTP session started at $(date)"
    # 在這里添加你想要執行的命令
    

    將這個腳本保存為 /usr/local/bin/sftp-custom-script.sh,然后給予執行權限:

    chmod +x /usr/local/bin/sftp-custom-script.sh
    
  2. 修改sshd配置文件: 接下來,你需要編輯sshd配置文件來指定SFTP子系統,并設置Chroot環境(如果需要)。這個文件通常位于 /etc/ssh/sshd_config。

    sudo vi /etc/ssh/sshd_config
    

    在文件中找到或添加以下行:

    Subsystem sftp internal-sftp
    
    Match Group sftpusers
        ChrootDirectory %h
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no
    

    這里,Match Group sftpusers 表示接下來的配置將只適用于屬于sftpusers組的用戶。ChrootDirectory %h 將用戶的根目錄限制在其主目錄中。ForceCommand internal-sftp 強制使用內置的SFTP服務器,而不是默認的shell。

  3. 創建用戶組并添加用戶: 創建一個新的用戶組(如果還沒有的話),并將需要使用SFTP的用戶添加到這個組中。

    sudo groupadd sftpusers
    sudo usermod -aG sftpusers username
    

    替換 username 為你想要添加的用戶名。

  4. 設置腳本執行: 為了讓SFTP用戶在登錄時執行你的自定義腳本,你可以使用 ForceCommand 指令來調用它。修改 /etc/ssh/sshd_config 文件,為特定的用戶或用戶組設置 ForceCommand。

    Match User username
        ForceCommand /usr/local/bin/sftp-custom-script.sh
    

    或者,如果你想要對整個組應用這個設置:

    Match Group sftpusers
        ForceCommand /usr/local/bin/sftp-custom-script.sh
    
  5. 重啟SSH服務: 保存并關閉sshd配置文件后,重啟SSH服務以使更改生效。

    sudo systemctl restart sshd
    
  6. 測試SFTP連接: 現在,當你使用屬于sftpusers組的用戶通過SFTP連接到服務器時,你的自定義腳本應該會被執行。

請注意,這些步驟可能需要根據你的具體需求進行調整。始終確保你的配置符合你的安全策略,并且在應用更改之前備份任何重要的配置文件。

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