【问题标题】:Permission denied while running native commands in Tomcat在 Tomcat 中运行本机命令时权限被拒绝
【发布时间】:2020-08-29 03:11:16
【问题描述】:

我正在尝试构建一个 webapp 作为 youtube-dl 的包装器。我正在使用 Runtime.getRuntime().exec() 调用 youtube-dl 命令,但我得到的只是权限被拒绝说 File system is read-only

我在执行Runtime.getRuntime().exec("youtube-dl ...",null,workingDirectory)之类的命令时传递了工作目录

workingDirectory 的权限更改如下
drwxr-xr-x 1 tomcat tomcat 0 May 13 08:21 Folder

甚至尝试使用 ProcessBuilder 而不是 RunTime 结果相同的问题并尝试其他命令(例如touch)来创建文件,但结果是相同的。得到touch: cannot touch 'a.txt': Read-only file system 错误

我使用的是 tomcat9 - 9.0.16-3ubuntu0.18.04.1,Java8 - 1.8.0_242,Ubuntu - 18.04.1,tomcat 是通过 apt-get 安装的

谁能告诉我我做错了什么?

【问题讨论】:

  • 想要编辑您的catalina.policy
  • tomcat 中未启用安全管理器,我尝试启用安全管理器并授予权限,仍然得到相同的结果。但是我可以毫无问题地读取文件,只有在我尝试写入文件时才会出现问题。据我了解,如果这是一个安全管理器问题,我会得到 SecurityException(如果我错了,请纠正我)
  • 有人可以帮忙吗?我被这个愚蠢的问题困了好几天???‍♀️

标签: java tomcat web-applications permission-denied tomcat9


【解决方案1】:

您的文件系统似乎进入了只读模式。请重启服务器。

【讨论】:

  • 我知道它在执行本机命令时处于只读模式,如何将其更改为本机命令的读写模式
  • 我可以以tomcat用户身份执行命令,没有任何问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-31
  • 1970-01-01
  • 2021-11-02
  • 2020-02-03
  • 1970-01-01
相关资源
最近更新 更多