注:本处的步骤仅供参考,请根据实际需求改动。操作环境为 Debian 9 x86_64。
$ sudo apt install nginx-extras apache2-utils
$ sudo groupadd ftp $ sudo useradd -g ftp ftpuser $ sudo usermod -s /sbin/nologin -d /home/ftp -m ftpuser $ sudo passwd ftpuser
首先在 /etc/ssh/sshd_config
找到这段:
Subsystem sftp /usr/lib/openssh/sftp-server
将其注释然后添加这一行:
Subsystem sftp internal-sftp
然后在末尾添加:
Match Group ftp PasswordAuthentication yes ChrootDirectory /home/ftp X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
必须要给母目录 root 用户和组的权限,且设置为 755。但下面的目录可随意指定。
$ sudo chown root:root /home/ftp $ sudo chmod 755 /home/ftp $ sudo chown ftpuser:ftp /home/ftp/files
本处只展示需求的设置。
location / { fancyindex on; fancyindex_exact_size off; fancyindex_localtime on; charset utf-8,gbk; try_files $uri $uri/ =404; }
location /secret { fancyindex on; fancyindex_exact_size off; fancyindex_localtime on; charset utf-8,gbk; auth_basic "Enter your name and password"; auth_basic_user_file /var/www/ftp/.htpasswd; }
然后设置用户名密码,这里假设用户名为 user:
$ sudo htpasswd -c /var/www/ftp/.htpasswd user