compila um programa java como usuário diferente

1

Eu sou capaz de logar como um usuário diferente usando um shell script no Ubuntu, mas eu quero rodar um programa Java nesse usuário, mas ele pára aí ...

por exemplo:

  1. faça login como usuário convidado com permissão limitada
  2. compilar HelloWorld.java
  3. java HelloWorld.java

O script que escrevi:

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

Por favor, mostre-me um caminho para resolver este problema

    
por ansh 28.06.2012 / 18:46

1 resposta

2

O problema com seu script é que a linha su $USER invoca uma subshell e, portanto, o próximo comando não é executado até que a sub-camada seja encerrada.

Você provavelmente quer fazer algo mais como:

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
    
por pjz 28.06.2012 / 20:45