设置 VSFTPD 用户以对 apache2 的 html 目录具有写入访问权限



看起来这应该很容易,但我在这里真的很挣扎。我不太精通Linux,但我可以四处走动。我只是设置了一个新的Ubuntu v20.04.2 Server并在上面安装了Apache2。然后我也在上面安装VSFTPD

现在我正在尝试获得它,所以当我使用用户"登录时;远程";我被锁定在/var/www/html/目录中,但对里面的任何内容都有写访问权限。

我的vsftpd.conf文件具有以下未注释的设置:

listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
local_root=/var/www/html
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO

当我在/var/www/html目录上设置chown时,现在vsftpd拒绝连接,因为根目录是可写的。如果我将其设置为默认所有权(root),那么当使用remote登录通过FTP登录时,我就无法对其进行写入。

如何让我的remoteftp登录能够完全访问/var/www/html目录,但只能访问该目录(及其子目录),同时保持安全?

您可能需要在vsftpd.conf文件中添加更多选项。这通常是我过去使用过的设置:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=0022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
file_open_mode=0777

这允许本地帐户为上载的文件设置默认权限(umask)。为了使掩模正常工作,需要将anon_upload_enableanon_mkdir_write_enable设置为YES。如果未设置这些权限,则上载的文件将应用700权限,这没有任何价值。

file_open_mode选项设置文件的默认设置。即使该值为777022local_umask设置也确保为文件提供755

设置好后,您可以重新启动FTP服务器,使所有内容生效。

对于用户帐户,通常最简单的方法是将其主目录设置为Apache根目录,并将其添加到www-data组中。

sudo adduser ftpuser
sudo usermod -d /var/www -m ftpuser
sudo usermod -a -G www-data ftpuser

登录到web服务器时,请确保将ftpuser更改为您希望人员或服务使用的任何内容。

从这里我们可以确保在/var/www目录中设置正确的权限:

sudo chgrp -R www-data /var/www
sudo chmod -R g+w /var/www

接下来,我们可以将该目录及其下面的所有子目录设置为";设置GID";,意味着在CCD_ 23下创建的所有新文件和目录都由CCD_。第二个命令将确保文件正确设置:

sudo find /var/www -type d -exec chmod 2775 {} ;
sudo find /var/www -type f -exec chmod ug+rw {} ;

这就是

相关内容

  • 没有找到相关文章

最新更新