在Linux上,有多种FTP服务器软件可供选择,如vsftpd、ProFTPD、Pure-FTPd等。这里以vsftpd为例,介绍如何限制用户访问特定目录。
对于基于Debian的系统(如Ubuntu),使用以下命令安装:
sudo apt-get update
sudo apt-get install vsftpd
对于基于RPM的系统(如CentOS、Fedora),使用以下命令安装:
sudo yum install epel-release
sudo yum install vsftpd
使用文本编辑器打开vsftpd的配置文件。通常位于/etc/vsftpd/vsftpd.conf
。例如,使用nano编辑器:
sudo nano /etc/vsftpd/vsftpd.conf
找到以下配置项并进行修改:
local_enable=YES
取消注释(删除行首的#
),以允许本地用户登录。chroot_local_user=YES
取消注释,以限制本地用户访问其主目录。chroot_local_user
设置为NO
,然后创建一个名为/etc/vsftpd/user_list
的文件,将要限制的用户添加到该文件中。在vsftpd.conf
中添加或修改以下配置项:user_list_enable=YES
user_list_file=/etc/vsftpd/user_list
user_list_deny=NO
这将允许user_list
中的用户访问FTP服务器,其他用户将被拒绝。
在用户的主目录下创建一个名为.ftpaccess
的文件,用于定义访问权限。例如,使用nano编辑器:
sudo nano /home/username/.ftpaccess
在.ftpaccess
文件中,添加以下内容以限制用户访问特定目录:
# 拒绝访问上级目录
chroot_local_user=YES
allow_writeable_chroot=YES
# 允许访问的目录
local_root=/home/username/allowed_directory
将/home/username/allowed_directory
替换为允许访问的目录路径。
对于基于Debian的系统:
sudo systemctl restart vsftpd
对于基于RPM的系统:
sudo systemctl restart vsftpd.service
现在,用户应该只能访问其在.ftpaccess
文件中指定的目录。请注意,这些步骤可能因FTP服务器软件和Linux发行版的不同而略有不同。如有需要,请查阅相应软件的文档以获取更详细的说明。