![创建新文件夹时应用默认的完全写入权限](https://linux22.com/image/1413354/%E5%88%9B%E5%BB%BA%E6%96%B0%E6%96%87%E4%BB%B6%E5%A4%B9%E6%97%B6%E5%BA%94%E7%94%A8%E9%BB%98%E8%AE%A4%E7%9A%84%E5%AE%8C%E5%85%A8%E5%86%99%E5%85%A5%E6%9D%83%E9%99%90.png)
我们面临权限问题。场景是
我们有 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
。请阅读以下主题,确保您在其中拥有正确的设置 - 如果没有,请进行一些更改并重试: