我尝试使用 put
创建一个文件,并赋予该文件 777
权限。
如果我这样创建文件:
use File;
...
$content = "<?php echo 'test'; ?>";
$file = app_path() . '/Http/Controllers/test.php';
File::put($file, $content);
但是,创建文件时具有以下权限:
-rw-r--r-- 1 daemon daemon 2,2K Mär 14 08:08 test.php
此外,用户和组是 daemon
而不是 root
。
如何创建具有用户和组 root
以及权限 rwxrwxrwx
的文件?
例如
-rwxrwxrwx 1 root root 2,2K Mär 14 08:08 test.php
我还将这些行添加到我的 /etc/sudoers
www-data ALL=(ALL) NOPASSWD: /bin/chmod
www-data ALL=(ALL) NOPASSWD: /bin/chown
www-data ALL=(ALL) NOPASSWD: /bin/chgrp
但我仍然得到 chmod(): no permission
和下面的代码:
File::chmod($unitPath, 0777);
chown($unitPath,"root");
chgrp($unitPath,"root");
最佳答案
Laravel 内置了对修改 mod 的支持
例如:
File::chmod($file,0755); //the leading zero is a must
不幸的是,它的文件系统模块中没有 chown,但您可以调用 php 模块
chown($file,"root");
改变组
chgrp($file,"group");
请注意:如果您不是 super 用户,更改组和所有者将失败,即使您可以 sudo。
关于php - Laravel - 创建具有特定用户、组和权限的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42789926/