Simular o login inicial do usuário sem usar o sudo

2

Estou escrevendo um script para fazer a interface de dois programas de terceiros. (Datadog e AWS)

O script de mineração de dados usa sudo -u para executar meu script.

O script do qual preciso recuperar dados será segmentado se o login inicial não for simulado.

O script de mineração de dados não tem permissão para sudo .

Eu posso reproduzir o erro assim:

[me] ~$ sudo -u dd-agent aws
[me] ~$ echo $?
139

Claro, se eu fizer um sudo -iu e executar o comando, ele funcionará bem.

É possível simular o login inicial sem passar por sudo ?

    
por Jack 30.10.2014 / 00:03

1 resposta

0

Para a simulação de login (sem passar pelo "sudo -i"), você precisa usar o comando "su".

Verificando a página man do parâmetro '-':

-, -l, --login
          Starts the shell as login shell with an environment similar to a real login:

             o      clears all environment variables except for TERM

             o      initializes the environment variables HOME, SHELL, USER, LOGNAME, PATH

             o      changes to the target user's home directory

             o      sets argv[0] of the shell to '-' in order to make the shell a login shell

Além disso, você precisa usar aqui-doc .

Como exemplo, você pode verificar a impressão do ID do usuário logado usando o comando 'id':

#\bin\bash

id

su - user <<EOF
userPassword
id
#here you can execute your script

EOF

id

Além disso, se o seu programa faz uma falha de segmentação, ele tenta acessar outro segmento de memória que não pertence ao programa.

    
por 21.05.2015 / 22:36

Tags