【问题标题】:How to manage Linux file permissions in Java?如何在 Java 中管理 Linux 文件权限?
【发布时间】:2023-03-03 12:37:01
【问题描述】:

是否有任何机制来获取和设置文件/目录权限?

例如,我想以shell的方式显示文件的权限:

-rwxr-xr--

是否可以使用 Java 来做到这一点?

  • 我知道File 类中有一些方法可以知道文件canExecutecanReadcanWrite,但AFAIK 此信息仅供当前用户使用。我需要知道整个八进制数,例如 755,所以我需要从用户、组和其他人那里获取它。
  • 我知道 Java7 带来了 Posix 操作,但如何使用更小的 JRE 做到这一点?
  • 我不想使用lschmod 之类的命令。

【问题讨论】:

  • 可以使用第三方库吗?

标签: java linux permissions chmod ext3


【解决方案1】:

如果可以使用外部库,有几种:

如果整个库看起来很麻烦,创建一个调用lstat C 函数并返回访问模式的 JNI 包装器大约需要 10 分钟。这是创建这样一个wrapper for the isatty and ttyname functions 的教程。

【讨论】:

    【解决方案2】:

    正如您所说,在 Java7 中,JVM 支持它,因此您可以保证这可以在所有操作系统中可移植地完成(因为 JVM 实现会处理它)。在 Java7 下,您必须每个操作系统 使用您想要支持的本地库。这可能比执行chmod 更脏

    【讨论】:

    • 那么,答案是什么?不,你做不到?
    • @DanielPeñalba 对。据我所知,在 Java7 之前,如果您在 linux 中,最好的选择是执行 chmod。但请稍等,其他人可能更清楚!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2020-02-20
    • 2013-11-05
    • 2012-05-17
    • 2023-03-17
    • 1970-01-01
    • 2016-07-24
    相关资源
    最近更新 更多