unoconv 无法在没有 sudo 的情况下连接或启动监听器

unoconv 无法在没有 sudo 的情况下连接或启动监听器

我正在学校服务器上为学校开发一个网站。我的网站使用 unoconv。由于某种原因,它直到今天都正常工作。基本上,如果我在控制台中运行此命令,就会发生以下情况:

 unoconv powerpoint.pptx

它给出了这个错误:错误:无法连接或启动自己的监听器。中止。

但适用于:

 sudo unoconv powerpoint.pptx

unoconv 是 777,所有权是 www-data:www-data,但它也无法通过网站工作。

 pgrep  -l 'office|writer|calc'

显示没有冲突,并且: unoconv --listener & 不能解决问题

我还应该做什么来调查?

答案1

@Erik Stagg,我知道已经晚了,但确实要与其他用户一起使用 unoconv,您可以在另一个进程中使用 sudo 保持打开一个端口:

$ sudo unoconv --listener

同时该进程正在运行,您可以以普通用户身份使用 unoconv:

$ unoconv -f docx file.doc

答案2

我刚刚遇到了同样的问题,发现这个链接非常有用:

https://ubuntuforums.org/showthread.php?t=1610270

简而言之,/etc/sudoers用您最喜欢的编辑器打开该文件并找到以下行:

root    ALL=(ALL) ALL

像这样在其下方添加一个新行:

root    ALL=(ALL) ALL
user.name    ALL=NOPASSWD: /path_to_your_program_bin_file

因此,要从 apache 运行 unoconv,您需要类似这样的操作:

root    ALL=(ALL) ALL
apache  ALL=NOPASSWD: /usr/bin/unoconv

让 apache 用户进入 sudoers 文件是否是个好主意又是另外一个问题,但也不要忘记 sudo 权限仅限于特定的程序。Apache 不能使用 sudo 运行任何东西:只能运行 unoconv 程序。

相关内容