Linux 在ftping到apachevar/www/virtualhost目录时应用chmod 755(或其他)?

Linux 在ftping到apachevar/www/virtualhost目录时应用chmod 755(或其他)?,linux,apache,chmod,Linux,Apache,Chmod,我正在努力理解如何应用目录和文件权限,以便ftp用户通过ftp客户端创建的文件和目录可以浏览。换句话说,默认情况下应用755 我在Ubuntu14.04.2LTS上运行Apache2,Trusty Tahr,带有vsftpd服务器 我的目录结构如下 var/www/ var/www/sites/ var/www/sites/master_demo/public_html var/www/sites/test_site/public_html 我已经运行了以下程序 usermod -aG www

我正在努力理解如何应用目录和文件权限,以便ftp用户通过ftp客户端创建的文件和目录可以浏览。换句话说,默认情况下应用755

我在Ubuntu14.04.2LTS上运行Apache2,Trusty Tahr,带有vsftpd服务器

我的目录结构如下

var/www/
var/www/sites/
var/www/sites/master_demo/public_html
var/www/sites/test_site/public_html
我已经运行了以下程序

usermod -aG www-data test_user
chgrp -R www-data /var/www/sites/test_site/public_html/
chown -R test_site:www-data /var/www/sites/test_site/public_html/
chmod -R 755 /var/www/sites/test_site/public_html/
目录的权限如下所示:

cd var/www/sites/
ls -l
dr-xrws--- 3 master_demo www-data 4096 Jun 17 14:00 master_demo
drwxr-xr-x 3 test_site   www-data 4096 Jun 16 13:32 test_site

cd var/www/sites/test_site/
ls -l
drwxr-xr-x 3 test_site www-data 4096 Jun 17 17:43 public_html
当测试站点用户使用ftp添加文件时,这些是权限

-rw------- 1 test_site test_site  152 Jun 18 08:27 about.html
drwx------ 2 test_site test_site 4096 Jun 18 08:27 css
-rw------- 1 test_site test_site  152 Jun 18 08:27 index.html
如何使文件自动获得正确的权限,以便文件可浏览(755)?我知道显而易见的答案可能是运行批处理文件,但这是必要的吗?我不想每次都运行这个命令

chmod -R 755 /var/www/sites/test_site/public_html/*
ls -l
-rwxr-xr-x 1 test_site test_site  152 Jun 18 08:27 about.html
drwxr-xr-x 2 test_site test_site 4096 Jun 18 08:27 css
-rwxr-xr-x 1 test_site test_site  152 Jun 18 08:27 index.html
我是linux新手,所以请温柔一点:)

我可以确认test_站点用户在www数据组中

id test_site
uid=1004(test_site) gid=1005(test_site) groups=1005(test_site),33(www-data)

我想你要找的是

您需要修改默认的
/etc/profile
,以使其永久化
umask 0022
将在创建时提供目录
chmod 755
和文件
chmod 644
,这是apache中www文件夹的建议权限

范例

umask 0022
mkdir www
touch www/{index.html,style.css}
drwxr-xr-x. 2 user user 4096 Jun 18 10:53 .
drwxr-xr-x. 3 user user 4096 Jun 18 10:52 ..
-rw-r--r--. 1 user user    0 Jun 18 10:53 index.html
-rw-r--r--. 1 user user    0 Jun 18 10:53 style.css

FTP还支持在启动传输之前设置
umask
。使用ftp设置它,仅为该传输设置if,这样您就不需要像使用
/etc/profile

一样在系统范围内更改它。很高兴我能提供帮助:)谢谢您的回复。从您的回答中,我发现我需要在/etc/vsftpd.conf中设置/取消注释umask设置:“local_umask=022”。它需要重新启动vsftpd服务:“服务vsftpd重新启动”。ftp用户必须重新连接ftp客户端。
umask 0022
mkdir www
touch www/{index.html,style.css}
drwxr-xr-x. 2 user user 4096 Jun 18 10:53 .
drwxr-xr-x. 3 user user 4096 Jun 18 10:52 ..
-rw-r--r--. 1 user user    0 Jun 18 10:53 index.html
-rw-r--r--. 1 user user    0 Jun 18 10:53 style.css