2010-01-04 17 views
1

使用不同憑據訪問文件(讀取/寫入/刪除/移動...)是否可能是登錄用戶?JAVA:使用不同憑據打開文件

+1

也許不同的技巧[如果有可能的話]根據不同的操作系統... – 2010-01-04 14:35:01

回答

1

什麼是相關的不是登錄的用戶,而是運行進程的用戶 - 這些不一定是相同的。

但是,在不同的用戶標識下運行一個進程是非常特定於操作系統的,並且沒有Java API。 此外,它必須在JVM啓動時完成,因爲我認爲任何操作系統都不允許進程切換其用戶標識。

+0

是的,你可以在任何Unix切換用戶ID - 看到的setuid( )和seteuid()。畢竟,這就是Unix系統登錄的方式! Windows中也有類似的(模擬等)。可能所有的操作系​​統都有一些手段在一個流程中完成這項工作。 [你是對的,沒有JVM允許它。] – 2010-01-04 15:44:30

+0

嗯,我認爲設置用戶ID只有當一個進程被創建時纔可能,但是之後必須改變它與fork()模型的進程是一致的創建。 – 2010-01-04 15:53:24

1

不直接從JVM,沒有。

但是在Windows下,你可以做exec()RunAs命令,在Unix/Linux的/ OS X,你可以做exec()sudo。儘管您最終可能會收到提示輸入密碼的提示。

0

如果是作爲一個文件共享,你可以使用JCIFS