在Ubuntu上設置SFTP共享文件夾,可以通過以下步驟實現:
安裝SSHFS:
sudo apt update
sudo apt install sshfs
創建一個掛載點:
mkdir ~/sftp_share
掛載遠程目錄到本地:
假設你有一個遠程服務器,IP地址為remote_server_ip,用戶名為username,遠程目錄為/path/to/remote/directory。
sshfs username@remote_server_ip:/path/to/remote/directory ~/sftp_share
配置SFTP服務器:
編輯/etc/ssh/sshd_config文件,確保以下配置存在并啟用:
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
創建SFTP用戶組:
sudo groupadd sftpusers
添加用戶到SFTP用戶組:
sudo usermod -aG sftpusers your_username
重啟SSH服務:
sudo systemctl restart sshd
設置掛載點的權限: 確保掛載點對SFTP用戶組可寫:
sudo chown root:sftpusers ~/sftp_share
sudo chmod 755 ~/sftp_share
安裝vsftpd:
sudo apt update
sudo apt install vsftpd
配置vsftpd:
編輯/etc/vsftpd.conf文件,確保以下配置存在并啟用:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
重啟vsftpd服務:
sudo systemctl restart vsftpd
創建SFTP用戶:
sudo adduser sftpuser
sudo passwd sftpuser
設置用戶主目錄權限:
sudo chown sftpuser:sftpuser /home/sftpuser
sudo chmod 755 /home/sftpuser
配置SFTP目錄權限: 確保SFTP用戶只能訪問其主目錄:
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
安裝Nginx:
sudo apt update
sudo apt install nginx
配置Nginx:
編輯/etc/nginx/sites-available/default文件,添加以下配置:
server {
listen 80;
server_name your_domain.com;
location /sftp {
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd;
sftp_internal_server on;
sftp_max_list_size 1024;
sftp_max_file_size 10485760;
root /path/to/your/local/directory;
autoindex on;
}
}
創建用戶認證文件:
sudo apt install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd your_username
重啟Nginx服務:
sudo systemctl restart nginx
通過以上方法,你可以在Ubuntu上設置SFTP共享文件夾,并根據需要進行配置和調整。