linux

如何配置Linux FTP Server用户隔离

小樊
73
2025-06-11 21:06:03
栏目: 智能运维

在Linux上配置FTP服务器以实现用户隔离,通常使用vsftpd(Very Secure FTP Daemon)作为示例。用户隔离意味着每个用户在登录后只能访问自己的主目录,不能访问其他用户的文件或目录。以下是配置步骤:

1. 安装vsftpd

首先,确保你已经安装了vsftpd。如果没有安装,可以使用以下命令进行安装:

sudo apt-get update
sudo apt-get install vsftpd

2. 配置vsftpd

编辑vsftpd的配置文件 /etc/vsftpd.conf

sudo nano /etc/vsftpd.conf

在配置文件中添加或修改以下行:

# 启用本地用户登录
local_enable=YES

# 启用写权限
write_enable=YES

# 启用chroot jail(用户隔离)
chroot_local_user=YES

# 如果你希望允许某些用户不被隔离,可以使用以下配置
# chroot_list_enable=YES
# chroot_list_file=/etc/vsftpd.chroot_list

# 允许用户上传文件
allow_writeable_chroot=YES

# 禁止匿名用户登录
anonymous_enable=NO

# 启用被动模式
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048

# 启用日志记录
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log

# 启用用户列表
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO

3. 创建用户和主目录

创建一个新用户并设置其主目录:

sudo adduser ftpuser
sudo passwd ftpuser

确保用户的主目录权限正确:

sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser

4. 配置chroot列表(可选)

如果你希望某些用户不被隔离,可以创建一个chroot列表文件 /etc/vsftpd.chroot_list 并添加这些用户的用户名:

sudo nano /etc/vsftpd.chroot_list

在文件中添加用户名,每行一个:

ftpuser
anotheruser

5. 重启vsftpd服务

保存并关闭配置文件后,重启vsftpd服务以应用更改:

sudo systemctl restart vsftpd

6. 配置防火墙(可选)

如果你使用的是防火墙,确保开放FTP所需的端口:

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 1024:1048/tcp

7. 测试FTP连接

使用FTP客户端连接到服务器,验证用户隔离是否生效。你应该只能访问该用户的主目录。

通过以上步骤,你可以在Linux上配置一个支持用户隔离的FTP服务器。

0
看了该问题的人还看了