【问题标题】:Permission denied issue in a java programjava程序中的权限被拒绝问题
【发布时间】:2017-09-26 03:55:26
【问题描述】:

我有一个 unix 系统用户 teamcity,它在 unix 的一个目录中解压一个 tar。

tar 包含一个 jar 文件和其他包含配置文件的目录。它还有一个日志目录和一个文件/log/abc.log

由于teamcity 正在运行 tar 命令,因此提取结果中的所有文件和目录都将teamcity 作为所有者和组。

我有另一个系统用户运行 jar 文件即。 abcuser.

当我以 abcuser 运行 jar 文件时,当程序尝试访问 /log/abc.log 文件时,出现以下异常:

Nested:java.io.FileNotFoundException: log/abc.log (Permission denied)

解决办法是什么?我不能让任何用户 teamcityabcuser 成为管理员。

【问题讨论】:

    标签: java unix permissions


    【解决方案1】:

    这里有几个选项。

    1。允许所有本地用户读取/log/abc.log

    sudo chmod o+r /log/abc.log 
    

    2。将 teamcity 和 abcuser 放在一个共同的组中。

    sudo groupadd loggingGroup
    sudo usermod -g loggingGroup abcuser
    sudo usermod -g loggingGroup teamcity
    

    只允许该组的成员访问/log/abc.log

    sudo chmod g+r /log/abc.log
    

    【讨论】:

    • 选项 2 需要重新启动系统。有没有办法在不重新启动系统的情况下实现它?
    • 在系统级别创建一个新的登录会话(注销、登录)应该没问题。对于您的应用程序,这可能意味着重新启动...请参阅:unix.stackexchange.com/questions/208617/…
    猜你喜欢
    • 2015-06-01
    • 1970-01-01
    • 2015-01-28
    • 2015-05-24
    • 2021-08-30
    • 2011-07-11
    • 2011-03-09
    • 2012-12-29
    • 2011-07-15
    相关资源
    最近更新 更多