我在 CentOS 6.6 上使用 LAMP Apache 版本 2.2.15。
我创建了一个目录 /var/www/dropbox,其权限为 rwxrwsr-x。我已将组 www-OtagoHarbour 设为所有者,其中 www-OtagoHarbour 是使用以下方式创建的
sudo groupadd www-OtagoHarbour
sudo usermod -G www-OtagoHarbour apache
sudo usermod -G www-OtagoHarbour OtagoHarbour
我已使用以下方式授予 apache 该目录的所有权
sudo chown apache /var/www/dropbox
并使用组访问
sudo chgrp -R www-OtagoHarbour /var/www/dropbox
sudo chgrp -R www-OtagoHarbour /var/www
sudo chmod -R g+r /var/www/dropbox
sudo chmod -R g+r /var/www
我使用以下 html 调用将文件上传到该文件夹。
<form action="http://whatever.com/uploadFiles.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file[]" multiple="multiple"/></br>
<input type="submit" name="submit[]" value="submit" />
<input type="hidden" id="LoggedIn" name="LoggedIn" value="<?php echo $_SESSION['LoggedIn'] ?>">
<input type="hidden" id="setName" name="setName" value="<?php echo $setName ?>">
<input type="hidden" id="UserName" name="UserName" value="<?php echo $_SESSION['UserName'] ?>">
</form>
uploadFiles.php 将上传的文件复制到 /var/www/dropbox。不幸的是,上传文件的权限是 -rw-r--r-- ,而我希望它们是 -rw-rw-r--。我试过了
sudo find /var/www/dropbox -type d -exec chmod 2775 {} \;
并重新启动计算机,但上传的文件仍然具有权限 -rw-r--r--。我知道我可以使用
sudo chmod g+w fileName
但我希望这能自动完成,因为我有处理文件并将其发送到其他地方的代码。
答案1
我发现我可以将文件夹中创建的新文件的默认权限设置为 -rw-rw----。使用
setfacl -dm u::rw,g::rw,o::--- /var/www/dropbox
然后我使用 /var/www/dropbox 创建一个“占位符”文件
echo "junk" >/var/www/dropbox/file.name
如果我将文件 file.name 复制到 /var/www/dropbox,它会假定它正在覆盖的文件的权限。