Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony2和sudo特权_Php_Symfony_Sudo - Fatal编程技术网

Php Symfony2和sudo特权

Php Symfony2和sudo特权,php,symfony,sudo,Php,Symfony,Sudo,我正在使用Symfony2开发一个应用程序。我的问题是,当通过实体中的函数创建文件夹时,所创建的文件夹没有sudo权限,我想知道如何使用sudo权限直接创建文件夹。这是我的代码: protected function getUploadDirMark() { // get rid of the __DIR__ so it doesn't screw when displaying uploaded doc/image in the view. retur

我正在使用Symfony2开发一个应用程序。我的问题是,当通过实体中的函数创建文件夹时,所创建的文件夹没有sudo权限,我想知道如何使用sudo权限直接创建文件夹。这是我的代码:

 protected function getUploadDirMark()
    {
        // get rid of the __DIR__ so it doesn't screw when displaying uploaded doc/image in the view.
        return 'uploads/documents/'.$this->getIzenburua();
    }  
'uploads/documents/。$this->getIzenburua()文件夹没有sudo权限,如何使用sudo权限创建它。谢谢。

这不管用吗? 这不管用吗?
你为什么需要sudo特权?由于您的应用程序由特定用户下的服务器运行,因此为其创建的文件或文件夹提供服务不会有问题。

为什么您需要sudo权限?由于您的应用程序由特定用户下的服务器运行,因此为其创建的文件或文件夹提供服务不会有问题。

如果常规
chmod
PHP函数不起作用,您可以使用sudo权限执行
chmod
shell命令

这是命令类中的外观:

$uploadDirmark = $this->getUploadDirMark();
$dialog = $this->getHelperSet()->get('dialog');
$passwd = $dialog->ask($output, 'Please enter sudo password');
exec("echo $passwd | sudo -S chmod -R a+w $uploadDirmark");

这将使目录及其所有内容对所有用户都是可写(和可删除)的。根据需要修改命令(有关详细信息,请参见命令行上的
man chmod
)。这样打开它有潜在的危险,请尝试将web服务器与创建文件的用户放在同一个组中,并使用“g+w”而不是“a+w”。

如果常规
chmod
PHP函数不起作用,您可以使用sudo权限执行
chmod
shell命令

这是命令类中的外观:

$uploadDirmark = $this->getUploadDirMark();
$dialog = $this->getHelperSet()->get('dialog');
$passwd = $dialog->ask($output, 'Please enter sudo password');
exec("echo $passwd | sudo -S chmod -R a+w $uploadDirmark");

这将使目录及其所有内容对所有用户都是可写(和可删除)的。根据需要修改命令(有关详细信息,请参见命令行上的
man chmod
)。这样打开它有潜在的危险,请尝试将web服务器与创建文件的用户放在同一个组中,并使用“g+w”而不是“a+w”。

我该如何编写?通过放置returnchmod('uploads/documents/'。$this->getIzenburua(),777);这是办不到的。它会提示一个错误。知道吗?我怎么写这个?通过放置returnchmod('uploads/documents/'。$this->getIzenburua(),777);这是办不到的。它会提示一个错误。有什么想法吗?在创建目录uploads/documents/'。$this->getIzenburua()后,我在其中保存了一些xml文件,然后使用PHP DOM加载它们,问题是无法加载此xml,因为目录中的权限不允许。使用实体存储库中的PHP DOM脚本@elnur?有什么想法吗。知道吗?我不明白。脚本是否由与服务器本身相同的PHP可执行文件运行?我的意思是,它是在保存文件后由Web服务器运行,还是在命令行中单独运行脚本?在创建目录uploads/documents/'。$this->getIzenburua()后,我在其中保存了一些xml文件,然后使用PHP DOM加载它们,问题是无法加载此xml,因为目录中的权限不允许。使用实体存储库中的PHP DOM脚本@elnur?有什么想法吗。知道吗?我不明白。脚本是否由与服务器本身相同的PHP可执行文件运行?我的意思是,它是在保存文件后由Web服务器运行,还是与命令行分开运行脚本?
exec(“echo$passwd |
是非常不安全的;现在系统上的每个用户都可以在命令运行时使用
ps
读取您的密码。如果您必须将密码传递给sudo,请直接从PHP将其导入
sudo
的STDIN中。
exec”(“echo$passwd |
是非常不安全的;现在系统上的每个用户都可以在命令运行时使用
ps
读取您的密码。如果您必须将密码传递给sudo,请直接从PHP将其导入
sudo
的STDIN。