设置Linux FTP服务器的权限需要综合考虑系统用户权限、FTP服务配置和文件系统权限。以下是详细的设置方法:
常见的Linux FTP服务器软件有: - vsftpd (推荐,安全稳定) - proftpd - pure-ftpd
创建FTP专用用户组:
sudo groupadd ftpusers
创建FTP用户并设置密码:
sudo useradd -g ftpusers -d /home/ftpuser1 -s /sbin/nologin ftpuser1
sudo passwd ftpuser1
限制用户只能访问自己的目录:
sudo chown ftpuser1:ftpusers /home/ftpuser1
sudo chmod 750 /home/ftpuser1
编辑/etc/vsftpd/vsftpd.conf
:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
allow_writeable_chroot=YES
user_sub_token=$USER
local_root=/home/$USER
设置目录权限:
sudo chmod -R 755 /var/ftp # 公共可读目录
sudo chmod -R 750 /var/ftp/upload # 上传目录
设置特殊权限:
sudo chown -R ftpuser:ftpgroup /path/to/directory
sudo find /path/to/directory -type d -exec chmod 755 {} \;
sudo find /path/to/directory -type f -exec chmod 644 {} \;
使用SSL/TLS加密:
在vsftpd.conf
中添加:
ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.key
限制IP访问:
tcp_wrappers=YES
然后在/etc/hosts.allow
和/etc/hosts.deny
中设置规则
速率限制:
local_max_rate=1000000 # 1MB/s
anon_max_rate=50000 # 50KB/s
无法上传文件:
write_enable=YES
setsebool -P ftpd_full_access on
)连接被拒绝:
sudo ufw allow 20/tcp
和sudo ufw allow 21/tcp
sudo systemctl status vsftpd
被动模式问题: 在配置文件中添加:
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
/var/log/vsftpd.log
)通过以上设置,您可以建立一个既安全又功能完善的FTP服务器环境。