在Ubuntu下,使用vsftpd(Very Secure FTP Daemon)可以轻松地限制访问权限。以下是一些常见的方法来限制访问权限:
首先,确保你已经安装了vsftpd:
sudo apt-get update
sudo apt-get install vsftpd
编辑vsftpd的配置文件 /etc/vsftpd.conf
:
sudo nano /etc/vsftpd.conf
如果你想限制某些用户访问FTP服务器,可以在配置文件中添加或修改以下行:
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
然后,创建或编辑用户列表文件 /etc/vsftpd.userlist
,添加允许访问的用户:
sudo nano /etc/vsftpd.userlist
在文件中添加用户名,每行一个。
如果你想限制特定IP地址访问FTP服务器,可以在配置文件中添加或修改以下行:
tcp_wrappers=YES
然后,编辑 /etc/hosts.deny
和 /etc/hosts.allow
文件:
sudo nano /etc/hosts.deny
添加以下行来拒绝所有IP访问:
vsftpd: ALL
sudo nano /etc/hosts.allow
添加允许访问的IP地址:
vsftpd: 192.168.1.1
vsftpd: 192.168.1.2
如果你想使用虚拟用户而不是系统用户,可以按照以下步骤操作:
sudo apt-get install db-util
sudo apt-get install vsftpd
创建一个虚拟用户数据库文件:
sudo touch /etc/vsftpd/virtual_users.txt
sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
创建一个虚拟用户映射文件:
sudo touch /etc/pam.d/vsftpd-virtual
编辑该文件,添加以下内容:
auth required pam_userdb.so db=/etc/vsftpd/virtual_users
account required pam_userdb.so db=/etc/vsftpd/virtual_users
编辑 /etc/vsftpd.conf
文件,添加或修改以下行:
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
创建一个系统用户 ftpuser
并设置密码:
sudo adduser --system --group --no-create-home ftpuser
sudo passwd ftpuser
然后,为每个虚拟用户创建一个主目录:
sudo mkdir /home/virtualuser1
sudo chown ftpuser:ftpuser /home/virtualuser1
最后,重启vsftpd服务以应用更改:
sudo systemctl restart vsftpd
通过以上步骤,你可以根据需要限制vsftpd的访问权限。