JAVA:使用不同凭据打开文件
什么是相关的不是登录的用户,而是运行进程的用户 - 这些不一定是相同的。
但是,在不同的用户标识下运行一个进程是非常特定于操作系统的,并且没有Java API。
此外,它必须在JVM启动时完成,因为我认为任何操作系统都不允许进程切换其用户标识。
是的,你可以在任何Unix切换用户ID - 看到的setuid( )和seteuid()。毕竟,这就是Unix系统登录的方式! Windows中也有类似的(模拟等)。可能所有的操作系统都有一些手段在一个流程中完成这项工作。 [你是对的,没有JVM允许它。] – 2010-01-04 15:44:30
嗯,我认为设置用户ID只有当一个进程被创建时才可能,但是之后必须改变它与fork()模型的进程是一致的创建。 – 2010-01-04 15:53:24
不直接从JVM,没有。
但是在Windows下,你可以做exec()
与RunAs
命令,在Unix/Linux的/ OS X,你可以做exec()
与sudo
。尽管您最终可能会收到提示输入密码的提示。
如果是作为一个文件共享,你可以使用JCIFS
也许不同的技巧[如果有可能的话]根据不同的操作系统... – 2010-01-04 14:35:01