gpt4 book ai didi

FTP - 550 无法更改目录

转载 作者:行者123 更新时间:2023-12-04 16:31:22 24 4
gpt4 key购买 nike

我正在尝试使用 FTP 编写远程文件。我正在使用 flysystem库在 PHP 中这样做。它似乎运作良好。但是,当我尝试写入特定位置的文件时,它会给我 chdir() 错误。为了测试这个,我在 FTP 控制台上尝试了这个。

[kbg@ip-192-0-1-118 ~]$ ftp
ftp> open 192.0.1.118
Connected to 192.0.1.118 (192.0.1.118).
220 (vsFTPd 2.2.2)
Name (192.0.1.118:kbg):
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/"
ftp> cd /projects/test
550 Failed to change directory.

当我在 vsftpd.conf 文件中更改以下内容时,它似乎运行良好。
chroot_local_user=NO
chroot_list_enable=NO

我什至可以使用 PHP 库进行编写,没有任何问题。允许我的用户写入/projects/test/t1.conf 文件中的文件的正确方法是什么?

最佳答案

你有 chroot_local_user = No但您似乎无权遍历/projects/test 。
您必须允许 ftp_user 遍历上面的目录。要做到这一点 :-

setfacl -R -m u:ftp_user:rwx /projects/test

但是,如果您必须更改目录内容,则必须更好地添加 ftp_user 以通过以下方式说 ftp 组:-
usermod -a -G ftp ftp_user

如果你还没有,你必须添加 ftp 组。

现在通过以下方式更改目录的组权限和所有权:-
chown -R :ftp /projects/test
chmod -R g+rwx /projects/test

并设置 guid 位,以便它里面的所有 future 文件和目录都允许 ftp_user 访问它们。
chmod g+s /projects/test

对于用户所有权、权限和位,可以遵循相同的程序而不是 group ,但我假设如果您正在使用 web 目录,所有权将默认为服务器用户,如 www、www-data、apache 等,因此您必须更好地与这里的团体合作。

或者,安全选项:-
chroot_local_user = Yes
并且可以绑定(bind)ftp用户家目录下的目录。要做到这一点 :-
mount --bind /projects/test /home/ftp_user/projects_test

要使其持久化,请将条目添加到 fstab 中:-
/projects/test /home/ftp_user/projects_test none bind 0 0

现在你可以像/projects/test 一样遍历 projects_test。

关于FTP - 550 无法更改目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34736743/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com