我很难理解如何应用目录和文件权限,以便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)
答案 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
那样在系统范围内进行更改。