ftp用户使用正确的权限在Ubuntu上var / www

我在我的Ubuntu 12服务器上有以下configuration:

1 – vsftpd安装并configuration了configuration文件设置:

 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------- 

这当然意味着每个试图通过std浏览器访问的文件都会收到禁止的警告。

/var/www的所有者是“www-data”,组是“webroot”。

webroot是我另外创build的一个组,并添加了ftp用户,以及其他几个。

我怎样才能最好地纠正这一点,以便std浏览器在尝试查看由ftp用户上传的文件时不会收到禁止的警告?

首先我相信你应该在/ var / www上执行chmod g+s 。 这将确保在此目录中创build的文件从父目录inheritance组。

其次,它看起来像文件模式可以通过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 

如果仍然有问题,请查看FTP用户的umask ,这可以在用户的~/.bashrc