以不同用户身份编译 Java 程序

以不同用户身份编译 Java 程序

我能够使用 Ubuntu 中的 shell 脚本以其他用户身份登录,但我想以该用户身份运行 Java 程序,但它在那里暂停了……

例如:

  1. 以具有有限权限的访客用户身份登录
  2. 编译HelloWorld.java
  3. Java HelloWorld.java

我写的脚本:

USER=sameek
su $USER
javac HelloWorld.java echo compiled

请告诉我解决这个问题的方法

答案1

您的脚本的问题在于该su $USER行调用了一个子shell,因此直到退出该子shell后才会执行下一个命令。

你可能想要做更多类似的事情:

USER=sameek
USERCMDS=/tmp/usercommands.$$
echo "JAVA_HOME=..." >>$USERCMDS
echo "PATH=\${JAVA_HOME}:\$PATH" >> $USERCMDS
echo "javac HelloWorld.java" >> $USERCMDS
chmod a+x $USERCMDS
su $USER -c $USERCMDS

相关内容