在Debian FTP服务器上设置访问控制列表(ACL)可以通过多种方式实现,具体取决于你使用的FTP服务器软件。以下是使用两种常见FTP服务器软件(vsftpd和ProFTPD)设置ACL的步骤:
安装vsftpd:
sudo apt update
sudo apt install vsftpd
配置vsftpd:
编辑/etc/vsftpd.conf文件:
sudo nano /etc/vsftpd.conf
添加或修改以下配置项:
# 启用本地用户登录
local_enable=YES
# 启用写权限
write_enable=YES
# 启用匿名用户登录
anonymous_enable=NO
# 启用虚拟用户
guest_enable=YES
guest_username=ftpuser
virtual_use_local_privs=YES
user_sub_token=$USER
local_root=/home/$USER
chroot_local_user=YES
allow_writeable_chroot=YES
创建用户和组: 创建一个新用户和组来管理FTP访问:
sudo addgroup ftpusers
sudo adduser --ingroup ftpusers ftpuser
sudo passwd ftpuser
设置目录权限: 确保FTP用户的主目录权限正确:
sudo chown ftpuser:ftpusers /home/ftpuser
sudo chmod 755 /home/ftpuser
重启vsftpd服务:
sudo systemctl restart vsftpd
安装ProFTPD:
sudo apt update
sudo apt install proftpd
配置ProFTPD:
编辑/etc/proftpd/proftpd.conf文件:
sudo nano /etc/proftpd/proftpd.conf
添加或修改以下配置项:
ServerName "Debian FTP Server"
ServerIdent on "FTP Server ready."
Port 21
UseIPv6 off
DefaultAddress *
User ftpuser
Group ftpusers
RequireValidShell off
AuthOrder mod_auth_pam.c* mod_auth_unix.c
AuthUserFile /etc/proftpd/passwd
AuthGroupFile /etc/proftpd/group
AuthPAMConfig proftpd
<Directory /home/ftpuser>
AllowOverwrite on
<Limit WRITE>
DenyAll
</Limit>
<Limit READ>
AllowAll
</Limit>
</Directory>
创建用户和组: 创建一个新用户和组来管理FTP访问:
sudo addgroup ftpusers
sudo adduser --ingroup ftpusers ftpuser
sudo passwd ftpuser
设置目录权限: 确保FTP用户的主目录权限正确:
sudo chown ftpuser:ftpusers /home/ftpuser
sudo chmod 755 /home/ftpuser
重启ProFTPD服务:
sudo systemctl restart proftpd
通过以上步骤,你可以在Debian FTP服务器上设置访问控制列表,确保只有授权用户才能访问特定的FTP目录和功能。