使用SecurityManager!
>将当前的Unix用户ID放入ThreadLocal
>创建您自己的SecurityManager来检查对checkRead()和checkWrite()的Unix用户权限
> System.setSecurityManager(new MySecurityManager())
>享受
更新资料
当然,没有标准库可读取unix文件权限.不是WORA.
但是我曾尝试过简短地找到一个随时可用的库,并找到了这个库:
http://jan.newmarch.name/java/posix/它使用JNI,但是您无需编写自己的JNI代码,这是一个很大的缓解. :)我敢肯定也有其他人.
更新2
就像人们提到的那样,这种方法无法检查“非标准”的Unix安全功能,例如ACL或Posix功能(可能;不确定是否适用于文件).但是,如果设定了与主机操作系统安全性完全同步的目标,那么我们甚至需要使用SecurityManager,因为它是JVM范围的保护机制!是的,我们可以启动子SUID进程来验证权限(并保持其运行,并在用户登录时通过管道运行与之对话),但是我们需要从SecurityManager进行操作!