菜鸟科技网

VPS如何开通子FTP账号?

要在VPS上开通子FTP账号,首先需要明确当前VPS使用的FTP服务类型,常见的有vsftpd、proftpd等,不同服务的配置方法略有差异,以下以广泛使用的vsftpd为例,详细说明开通子FTP账号的步骤,整个过程主要涉及创建系统用户、配置vsftpd权限以及设置FTP目录隔离,确保子账号只能访问指定目录,保障服务器安全。

VPS如何开通子FTP账号?-图1
(图片来源网络,侵删)

第一步:安装vsftpd服务
若VPS未安装vsftpd,需通过SSH登录服务器,执行以下命令安装(以CentOS为例):

yum install vsftpd -y  # CentOS/RHEL系统
apt install vsftpd -y  # Ubuntu/Debian系统

安装完成后启动服务并设置开机自启:

systemctl start vsftpd
systemctl enable vsftpd

第二步:创建系统用户并设置密码
子FTP账号本质上是系统用户,需通过useradd命令创建,创建用户ftpuser1,并设置其家目录为/home/ftpuser1(此目录将作为FTP根目录):

useradd -m -d /home/ftpuser1 -s /sbin/nologin ftpuser1
passwd ftpuser1  # 设置用户密码

参数说明:-m自动创建家目录,-d指定家目录,-s /sbin/nologin禁止该用户通过SSH登录,仅允许FTP访问。

VPS如何开通子FTP账号?-图2
(图片来源网络,侵删)

第三步:配置vsftpd实现目录隔离
为防止子账号访问系统其他目录,需修改/etc/vsftpd/vsftpd.conf配置文件,启用以下关键设置:

anonymous_enable=NO        # 禁止匿名访问
local_enable=YES           # 允许本地用户登录
chroot_local_user=YES      # 将用户限制在家目录
allow_writeable_chroot=YES # 允许被限制在家的用户写权限(需配合以下配置)

为确保安全,建议在配置文件末尾添加:

user_sub_token=$USER       # 定义用户变量
local_root=/home/$USER     # 动态设置用户家目录

保存后重启vsftpd服务:systemctl restart vsftpd

第四步:设置目录权限
确保用户家目录权限正确,避免因权限问题导致无法访问:

VPS如何开通子FTP账号?-图3
(图片来源网络,侵删)
chown -R ftpuser1:ftpuser1 /home/ftpuser1  # 设置目录所有者
chmod 755 /home/ftpuser1                   # 设置目录权限

若需上传文件,还需确保目录具有写权限:chmod 755 /home/ftpuser1/upload(假设上传目录为upload)。

第五步:防火墙与SELinux配置
若防火墙启用,需开放FTP端口(默认21)和数据端口(被动模式范围,如30000-31000):

firewall-cmd --permanent --add-service=ftp
firewall-cmd --permanent --add-port=30000-31000/tcp
firewall-cmd --reload

若开启SELinux,需安装setsebool并设置允许FTP家目录访问:

setsebool -P ftpd_full_access on

第六步:测试子FTP账号
使用FTP客户端(如FileZilla)输入VPS IP、用户名ftpuser1及密码,登录后应只能看到/home/ftpuser1目录下的文件,无法访问上级目录,验证配置成功。

相关FAQs

Q1:如何限制子FTP账号仅能上传文件,不能删除或修改?
A:可通过设置目录权限实现,在用户家目录下创建upload目录,仅赋予写权限,而其他目录只读:

mkdir /home/ftpuser1/upload
chown -R ftpuser1:ftpuser1 /home/ftpuser1/upload
chmod 511 /home/ftpuser1/upload       # 仅可上传(执行+写)
chmod 555 /home/ftpuser1              # 其他目录只读(读+执行)

在vsftpd配置文件中添加write_enable=YES以启用写入功能,但通过目录权限控制具体操作。

Q2:子FTP账号登录失败,提示“530 Login incorrect”怎么办?
A:可能原因及解决方案如下:

  1. 密码错误:确认输入的密码正确,可通过passwd ftpuser1重置密码。
  2. 用户被禁止登录:检查/etc/vsftpd/ftpusers文件(列出禁止登录的用户),确保用户名不在其中;或检查/etc/vsftpd/user_list文件(默认情况下,若userlist_enable=YESuserlist_deny=YES,则文件中用户禁止登录)。
  3. SELinux或防火墙拦截:临时关闭SELinux(setenforce 0)测试,或检查防火墙日志确认是否拦截FTP端口。
  4. 家目录权限错误:确保家目录权限为755,用户对目录具有执行权限(x),否则无法访问。
分享:
扫描分享到社交APP
上一篇
下一篇