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

标签 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);

但是,创建文件时具有以下权限:

-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/

相关文章:

laravel - 用 eloquent 获取外键的名称

php - 从 URL Laravel 5.3 中删除 public

javascript - 无法在 laravel 中使用模态和 ajax 插入表

php - 将 IN 和 OUT 提取到一列中

c++ - X11 KeyCode或KeySym如何转换为扫码

javascript - 尝试根据之前的 2 个选择来填充选择

c++ - 无法使用 istream 和 ostream 指针跨 Linux 管道写入

c - 在 Linux 中用 C 语言获取主音量

php - 来自 PHP 的 Backbone JSON 请求问题

PHP/MySQL : Certain characters not being encoded properly and appearing as question marks