su - nome de usuário -c “./script.sh” - nenhum arquivo ou diretório

2

Temos:

  1. um usuário nico.
  2. uma pasta /home/nico/script_home com alguns scripts bash:

    1. main.sh
    2. subscripta.sh
    3. sqlscripta.sh
  3. Nos conectamos como root e cd /home/nico/script_home/

  4. Finalmente, executamos ./main.sh

Temos como resultado:

  1. subscripta.sh - nenhum arquivo ou diretório desse tipo
  2. O script sql funciona bem

Percebi que su - nico -c "pwd" retorna /home/nico/ Então, tentei alterar main.sh para ./script_home/subscripta.sh , mas sem sucesso.

Qual é a sintaxe correta para evitar o erro no arquivo ou diretório ao executar um script com su -?

#main.sh
su - nico -c "./subscripta.sh"
su - nico -c "sqlplus username/pass@some_oracle_db @script_home/sqlscripta.sql"
    
por Nicolas de Fontenay 17.12.2011 / 16:36

2 respostas

1

Experimente su - nico -c "/home/nico/script_home/subscripta.sh"

    
por 17.12.2011 / 16:41
1

Não faça su - - que faz um login total para o ID do usuário, incluindo a configuração HOME para qualquer diretório pessoal do ID do usuário.

Experimente su nico -c "./script.sh"

Além disso, certifique-se de que script.sh esteja marcado como executável.

    
por 17.12.2011 / 20:19

Tags