Laravel - 创建具有特定用户、组和权限的文件

Bla*_*ack 2 php linux laravel laravel-5.4

我尝试通过使用创建文件put并授予文件权限777

如果我像这样创建文件:

use File;

...

$content = "<?php echo 'test'; ?>";
$file   = app_path() . '/Http/Controllers/test.php';
File::put($file, $content);
Run Code Online (Sandbox Code Playgroud)

但是,该文件是使用以下权限创建的:

-rw-r--r-- 1 daemon daemon 2,2K Mär 14 08:08 test.php
Run Code Online (Sandbox Code Playgroud)

用户和组也不daemonroot.

如何创建具有用户和组root以及权限的文件rwxrwxrwx

例如

-rwxrwxrwx 1 root root 2,2K Mär 14 08:08 test.php
Run Code Online (Sandbox Code Playgroud)

我还将这些行添加到我的 /etc/sudoers

www-data ALL=(ALL) NOPASSWD: /bin/chmod 
www-data ALL=(ALL) NOPASSWD: /bin/chown
www-data ALL=(ALL) NOPASSWD: /bin/chgrp
Run Code Online (Sandbox Code Playgroud)

但我仍然得到chmod(): no permission以下代码:

File::chmod($unitPath, 0777);
chown($unitPath,"root");
chgrp($unitPath,"root");
Run Code Online (Sandbox Code Playgroud)

Sha*_*tef 5

Laravel 内置支持更改 mod

前任:

File::chmod($file,0755); //the leading zero is a must
Run Code Online (Sandbox Code Playgroud)

不幸的是,它的 Filesystem 模块中没有 chown,但您可以调用 php one

chown($file,"root");
Run Code Online (Sandbox Code Playgroud)

更改组

chgrp($file,"group");
Run Code Online (Sandbox Code Playgroud)

请注意:如果您不是超级用户,即使您可以 sudo,更改组和所有者也会失败。