【问题标题】:File Permission issue javac文件权限问题 javac
【发布时间】:2017-04-12 07:33:04
【问题描述】:

我在一个目录中有文件。有些人将 root 作为所有者和组,而某些用户(我)作为所有者和组(但是发生了这种情况)。我跑了sudo chmod 755 -R /usr/casloader,我所有的目录都在/usr/casloader下。所有文件都是-rwxr-xr-x

我正在尝试编译一个 java 类(作为我的用户) - 如果在所有者/组为 root 的文件上运行 javac,我可以编译得很好。编译类的所有者/组成为我。 (它将编译的类写入同一个文件夹)。

但是如果我尝试编译一个所有者组是我的类,它会给出file write error: Permission Denied

我该如何解决这个问题?一切都必须是根吗?

【问题讨论】:

  • 那不是因为你是群主。可能是因为类文件已经以 root 作为所有者存在。但是您没有提供足够的信息来确定。在任何情况下,使用chown 以root 身份将所有*.java 文件设为您的,然后删除所有*.class 文件,然后重试。
  • 该消息清楚地表明这是一个写入问题,因此正在读取的文件的所有权无关紧要。由于您显然对目标目录具有写入权限,因此您可以删除所有现有的类文件,而不管它们的所有者如何,然后再次编译。
  • @Erwin @Holger 我试图创建的类文件不存在,所以现在没有覆盖情况(将来我重新编译时可能会发生)。我chown .java 文件到root 并且能够编译(该组仍然是我)。当我尝试重新编译时出错,删除了 .class 文件。现在尝试重新编译,但现在我得到同样的旧写权限错误。文件的所有者是根组 me。
  • 我的子目录也都是rwxr-xr-x root root
  • 所以你的子目录都只能由 root 写。我不确定您为什么希望能够将非 root 用户创建的文件写入仅由 root 拥有和可写的目录中。

标签: java java-8 ubuntu-14.04 file-permissions


【解决方案1】:

我只是用 -R 做了 g+w,o+w。所以我有 rwxrwxrwx - 所以问题解决了。 (不确定这是否是最佳解决方案。)

【讨论】:

    猜你喜欢
    • 2014-10-13
    • 2011-09-17
    • 2018-10-30
    • 2013-08-27
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    相关资源
    最近更新 更多