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)
用户和组也不daemon是root.
如何创建具有用户和组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)
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,更改组和所有者也会失败。