Como executar Script como outro usuario dentro de um Script no perfil de outro [RESOLVIDO]

1. Como executar Script como outro usuario dentro de um Script no perfil de outro [RESOLVIDO]

Thiago Boeira
tcboeira

(usa Debian)

Enviado em 26/04/2020 - 22:47h

Boa Noite amigos...

Bem, mais uma no jogo novamente para analise e ajuda...

O programa em questão é o SQL DEVELOPER, o arquivo é o product.conf e a entrada a ser consultada é SetSkipJ2SDKCheck true

O USUARIO01 ... Ele vai acessar um programa. Esse programa verificar se uma configuração é real em um arquivo. Se OK, ele inicia... Se não ele recusa...
A ideia é que o quando o USUARIO01 for executar o programa, verifique se há essa configuração. Caso negativo, ele deve escrever no arquivo de configuração. Algo como o abaixo:

#!/bin/bash
SETSQL01=$(head -n 1 $HOME/.sqldeveloper/4.2.0/product.conf)
if [ "$SETSQL01" = "SetSkipJ2SDKCheck true" ]; then
echo "Segue o jogo"
else
sed -i '1 iSetSkipJ2SDKCheck true' $HOME/.sqldeveloper/4.2.0/product.conf
echo $SETSQL01
fi


Até ai beleza.
O processo - de verificar e escrever no arquivo caso for preciso - deveria ser automatico e transparente.
Os "users" das estações são usuarios como "administrador". No sudoers está configurado como abaixo

# User privilege specification
root ALL=(ALL:ALL) ALL
usuario-rede ALL=(ALL:ALL) ALL


Bem, meio que perdi os cabelos...
Na ultima vez, tentei mudar o atalho para ele fizesse o seguinte:
Ao chamar o programa, ele antes do script mostrado acima, e ele chama a seguinte linha:

USUARIO01@PC-LOCAL-001:~$ echo 'senha_USR_SUPORTE' | su -c $HOME/teste.sh -s /bin/bash USR_SUPORTE

Ocorre que o retorno é de não localização do arquivo. Isso pq ele ele busca no HOME de USR_SUPORTE e não no de USUARIO01 como deveria ser.

Hehehehehe, a pergunta simples é:

Por que?

Muito Obrigado pela explicação, pela ajuda ...
Um grande abraço!


  


2. Re: Como executar Script como outro usuario dentro de um Script no perfil de outro [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 27/04/2020 - 00:45h


tcboeira escreveu:

Boa Noite amigos...

Bem, mais uma no jogo novamente para analise e ajuda...

O programa em questão é o SQL DEVELOPER, o arquivo é o product.conf e a entrada a ser consultada é SetSkipJ2SDKCheck true

O USUARIO01 ... Ele vai acessar um programa. Esse programa verificar se uma configuração é real em um arquivo. Se OK, ele inicia... Se não ele recusa...
A ideia é que o quando o USUARIO01 for executar o programa, verifique se há essa configuração. Caso negativo, ele deve escrever no arquivo de configuração. Algo como o abaixo:

#!/bin/bash
SETSQL01=$(head -n 1 $HOME/.sqldeveloper/4.2.0/product.conf)
if [ "$SETSQL01" = "SetSkipJ2SDKCheck true" ]; then
echo "Segue o jogo"
else
sed -i '1 iSetSkipJ2SDKCheck true' $HOME/.sqldeveloper/4.2.0/product.conf
echo $SETSQL01
fi


Até ai beleza.
O processo - de verificar e escrever no arquivo caso for preciso - deveria ser automatico e transparente.
Os "users" das estações são usuarios como "administrador". No sudoers está configurado como abaixo

# User privilege specification
root ALL=(ALL:ALL) ALL
usuario-rede ALL=(ALL:ALL) ALL


Bem, meio que perdi os cabelos...
Na ultima vez, tentei mudar o atalho para ele fizesse o seguinte:
Ao chamar o programa, ele antes do script mostrado acima, e ele chama a seguinte linha:

USUARIO01@PC-LOCAL-001:~$ echo 'senha_USR_SUPORTE' | su -c $HOME/teste.sh -s /bin/bash USR_SUPORTE

Ocorre que o retorno é de não localização do arquivo. Isso pq ele ele busca no HOME de USR_SUPORTE e não no de USUARIO01 como deveria ser.

Hehehehehe, a pergunta simples é:

Por que?

Muito Obrigado pela explicação, pela ajuda ...
Um grande abraço!

Boa noite tcboeira.
Pelo que entendi, se é que entendi . . .
O comando:
USUARIO01@PC-LOCAL-001:~$ echo 'senha_USR_SUPORTE' | su -c $HOME/teste.sh -s /bin/bash USR_SUPORTE
Loga o "USUARIO01", como "USR_SUPORTE", e a $HOME é a do USR_SUPORTE.
No script, onde tem "$HOME", troque pelo caminho completo
Ex:
/home/USUARIO01/.sqldeveloper/4.2.0/product.conf

______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________


3. Re: Como executar Script como outro usuario dentro de um Script no perfil de outro [RESOLVIDO]

Thiago Boeira
tcboeira

(usa Debian)

Enviado em 13/05/2020 - 18:01h

Opa... Bem, desculpe pela demora...
NO fim, a resolução passou necessariamente pela atualização do SQL... Estava testando a 17 no Ubuntu 20....Atualizei para 19 e fiz algumas alterações nos arquivos de configuraçao e pronto. tudo funcionando

Muito obrigado pela ajuda!
De qq forma uso isso em outra solução!!!

Grande abraço!!!!