创建新文件夹时应用默认的完全写入权限

创建新文件夹时应用默认的完全写入权限

我们面临权限问题。场景是

我们有 Federoa 和 Xammp 服务器,并在本地网络上共享项目目录,以便创建项目文件夹进行项目开发。一切都很好,除了一件事,当我们在网络上创建新文件夹时,它没有完全权限,但是“drwxr-xr-x”因此我们的 PHP 程序无法上传文件。这都是因为权限不足。

在安装此 Fedora 之前,以前的版本运行良好。我们能够创建具有默认完全权限的文件夹来执行任何操作。

命令和结果

[root@umi]# setfacl -R -d -m g::rwx -m u::rwx -m o::rwx ajax_upload
[root@umi]# getfacl ajax_upload
# file: ajax_upload
# owner: root
# group: root
user::rwx
group::rwx
other::rwx
default:user::rwx
default:group::rwx
default:other::rwx



然后我在网络共享的 Windows 平台的 ajax_upload 目录中创建了一个名为“test2”的目录

[root@umi]# getfacl ajax_upload/test2
# file: ajax_upload/test2
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::rwx
default:other::rwx



您会看到“group::rx”和“other::rx”...下面是 ls -ld 的结果

[root@umi]# ls -ld ajax_upload/test2
drwxr-xr-x+ 2 root root 4096 2014-06-27 11:29 ajax_upload/test2



有人能建议我们做什么吗?当我们创建新文件夹时,它必须具有完全的权限,例如“drwxrwxrwx”

答案1

如果你挂载了支持文件系统acl(即 /etc/fstab 在该文件系统的选项 [4th] 字段中有 acl),你可以使用该setfacl命令为新创建的文件和目录设置默认权限:

setfacl -d -m u::rwx,g::rwx,o::rwx /target/directory

现在,当任何用户在 中创建目录时/target/directory/,这些新目录将以“drwxrwxrwx+”权限创建。+ 表示 acl 存在,可以使用命令显示getfacl

当然,您需要确保 /target/directory 本身对您的用户来说是可写的。

答案2

不要使用mkdir(我猜这是你现在正在使用的),尝试使用:

install -d -m 0777 /new/dir/

/new/dir/这将创建一个具有完全权限的新目录(如chmod 777)。

另一个解决方案是umask为创建目录的用户使用适当的值。请查看此主题了解更多信息和示例。


阅读完您的评论后,我确信问题出在您当前的值上umask。请阅读以下主题,确保您在其中拥有正确的设置 - 如果没有,请进行一些更改并重试:

相关内容