3

我最近被提升为管理员,这意味着我的活动目录用户名获得了更多权限。因此,我现在有权读取/写入我们的服务器,这有点令人不安。

以前,如果我运行任何运行类似 的本地代码my_remote_file.delete(),那么它将忽略该方法。(嗯,从技术上讲,它会返回 false。)但是,由于我的活动目录用户名现在被授予我们服务器上的所有权限,Java 运行该本地代码没有问题,它实际上会影响我们的服务器。

我不想假设我在运行本地代码时总是小心翼翼,我想知道你们是否有任何想法可以仅在我在 Eclipse 中运行本地代码的情况下降低我的权限。换句话说,当我在 Eclipse 中运行任何本地代码时,我希望对所有服务器目录具有只读权限。

我想到的一个解决方案是简单地创建另一个用户,在活动目录中具有只读权限,但我认为维护两个帐户将来不会很好地扩展。

4

1 回答 1

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并实现抛出 SecurityExceptionscheckDelete()checkWrite()方法。它可能会为您提供与在本地文件系统上物理更改权限类似的结果,而无需创建非特权用户。

于 2012-08-08T01:35:08.567 回答