我的 Ubuntu 12 服务器上有以下配置:
1-vsftpd
安装并配置配置文件设置:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dir_message_enable=YES
use_locatime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
#chroot_list_enable=YES (commented out)
chroot_list_file=/etc/vsftpd.chroot_list
secure_choot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/ect/ssl/private/vsftpd.pem
user_config_dir=/etc/vsftpd/user_conf
2 – 我有一个 ftp 用户设置,其中他们的主目录是
/var/www
3 – 当我使用新的 ftp 用户名通过 filezilla 连接到服务器时,filezilla 会根据需要自动显示 webroot。
问题在于文件的权限;ftpuser 上传到/var/www
目录的每个文件都设置为文件的所有者和组都属于 ftp 用户。
权限也是
-rw-------
这当然意味着通过标准浏览器尝试访问的每个文件都会收到禁止警告。
的所有者/var/www
是“www-data”,组是“webroot”。
webroot 是我单独创建的一个组,并将 ftp 用户和其他一些用户添加到其中。
我怎样才能最好地纠正这个问题,以便标准浏览器在尝试查看 ftp 用户上传的文件时不会收到禁止警告?
答案1
首先,我认为您应该chmod g+s
在 /var/www 上执行此操作。这将确保在此目录中创建的文件从父目录继承组。
其次,文件模式似乎可以通过 vspftpd.conf 值来控制:
file_open_mode
The permissions with which uploaded files are created. Umasks are applied on top of
this value. You may wish to change to 0777 if you want uploaded files to be executable.
Default: 0666
如果仍然有问题,请查看umask
FTP 用户,这可能在用户的~/.bashrc