【问题标题】:How can I set SELinux permissions from Java?如何从 Java 设置 SELinux 权限?
【发布时间】:2014-10-02 13:43:55
【问题描述】:

我想创建一个 SELinux 类型为 svirt_sandbox_file_t 的文件。

我相信我正在寻找可以传递给createFileFileAttribute

如果有影响的话,我的目标语言是 Clojure。

【问题讨论】:

    标签: java clojure selinux


    【解决方案1】:

    首先,我认为您不能通过 Java NIO 文件属性来做到这一点。不支持,AFAIK。

    我能想到两种方法:

    • 最实用的方法是在文件创建后使用Process 运行外部SELinux 命令来调整SELinux 属性。我看不出为什么这不起作用...假设您的应用程序具有执行此操作所需的权限。

    • 使用 JNI 调用相关的 SELinux 本机代码库是一种更困难的方法。例如,我在 Android 库中遇到了这个类:https://github.com/android/platform_frameworks_base/blob/master/core/java/android/os/SELinux.java ... 似乎就是这样工作的。我想这种方法可以在常规 Linux 平台上与常规 Java 一起使用。

    【讨论】: