在ftping到apache var / www /虚拟主机目录时应用chmod 755(或其他)?

时间:2015-06-18 08:16:47

标签: linux apache chmod

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

我在Ubuntu 14.04.2 LTS,Trusty Tahr和vsftpd服务器上运行Apache 2。

我的目录结构如下。

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

当test_site用户使用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_site用户在www-data组

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

1 个答案:

答案 0 :(得分:1)

我认为你要找的是umask

 umask 0022
 umask -p
 umask -S

您需要修改默认/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进行设置,仅设置是否为该传输,这样您就不需要像使用/etc/profile那样在系统范围内进行更改。