我可以在Java中的可运行线程上切换用户吗?

我可以在Java中的可运行线程上切换用户吗?,java,multithreading,Java,Multithreading,假设我需要在shell上运行它 $ su <user>; cp /x /y; $su;cp/x/y; 有没有一种方法可以在应用程序中与另一个unix用户一起运行线程?没有。Java线程的粒度级别比unix进程更细;进程才有一个有效的用户。您可以运行Runtime.exec sudo'd命令。exec创建一个新的unix进程,该进程可以使用其他用户 如果正确配置了sudo(例如,用户joe只能使用sudo执行程序foobar),那么如果您不只是在命令中从前端punt凭证来执行,那么

假设我需要在shell上运行它

$ su <user>; cp /x /y;
$su;cp/x/y;

有没有一种方法可以在应用程序中与另一个unix用户一起运行线程?

没有。Java线程的粒度级别比unix进程更细;进程才有一个有效的用户。

您可以运行Runtime.exec sudo'd命令。exec创建一个新的unix进程,该进程可以使用其他用户

如果正确配置了sudo(例如,用户joe只能使用sudo执行程序foobar),那么如果您不只是在命令中从前端punt凭证来执行,那么安全问题应该不会太大