【问题标题】:Pipe to File Permission Denied管道到文件权限被拒绝
【发布时间】:2015-04-02 13:46:37
【问题描述】:

我正在尝试做类似的事情:

echo "things" >> file

从 java 项目中调用。即使直接从终端调用它也会产生

-bash: file: Permission denied

这是因为 >> 的方向不正确。或者,我可以这样做

sudo -s 'echo "wtf" >> metrics'

这行得通。但是,我不能从 java 项目中执行 sudo。我可以使用什么替代方法来实现这一点? 我可以根据需要更改文件权限,我只需要在每次项目运行时附加一行即可。

【问题讨论】:

  • 授予用户对文件的写入权限,或通过以拥有该权限的用户身份运行的工具或守护程序间接授予用户权限。

标签: bash shell permissions pipe echo


【解决方案1】:

我认为,这不是因为重定向(>>)。这是因为文件需要权限。如果运行您的 java 程序的用户有足够的权限写入名为文件的对象,那么它将起作用

【讨论】:

  • 用户拥有该文件的完全权限并拥有它。即使直接从终端调用它也会产生相同的结果。我需要如何更改权限才能使其正常工作?我知道我可以创建一个新文件并执行 echo "things" >> file 并且一切正常。
  • 通常,一般的写权限应该足以追加到文件中。如果不是,则可能是您的环境更复杂,而有其他事情阻碍了。请尽可能详细地指定您的环境,即操作系统、文件系统、挂载选项、授权访问控制系统的使用、SELinux、扩展的 POSIX 文件属性、基于内核的虚拟化等。
猜你喜欢
  • 2020-03-23
  • 2011-11-10
  • 2012-11-24
  • 1970-01-01
  • 2020-05-17
  • 2022-01-02
  • 2017-06-28
  • 2017-12-25
  • 2016-10-01
相关资源
最近更新 更多