我最近被提升为管理员,这意味着我的活动目录用户名获得了更多权限。因此,我现在有权读取/写入我们的服务器,这有点令人不安。
之前,如果我运行任何运行my_remote_file.delete()
之类的本地代码,那么它会忽略该方法。 (从技术上讲,它会返回false。)但是,由于我的活动目录用户名现在在我们的服务器上获得了所有权限,因此Java运行该本地代码没有问题,它实际上会影响我们的服务器。
我不想假设在运行本地代码时我会一直小心,我想知道你们是否有任何想法只在我在Eclipse中运行本地代码的情况下放弃我的权限。换句话说,当我在Eclipse中运行任何本地代码时,我希望对所有服务器目录具有只读权限。
我想到的一个解决方案是简单地创建另一个用户,在活动目录中具有只读权限,但我认为维护两个帐户将来不会很好地扩展。
答案 0 :(得分:2)
这不会完全“忽略”my_remote_file.delete()
等方法,但如果您使用策略文件,它会让您更改某些权限。这将使您无法删除文件/local/file
:
grant {
permission java.io.FilePermission
"/local/file", "read";
};
然后调用它:
java -Djava.security.manager=default -Djava.security.policy=polfile YourEntryPointClass
(您可以在Eclipse中执行类似的操作,可能在VM参数下)
或者您可以创建自定义SecurityManager并实现投放SecurityExceptions的checkDelete()
和checkWrite()
方法。它可能会给你一个与物理上更改本地文件系统权限类似的结果,而不必创建一个无特权的用户。