como escrever um script que irá executar comandos após su, sem usar -c

5

Estou tentando automatizar uma atividade padrão em um sistema no qual não tenho acesso root. O administrador dos sistemas me deu autoridade para executar o comando sudo su - 'user' e somente para esse comando. Não consigo adicionar um argumento -c ou sudo falhará.

Meu script terá que começar com minhas permissões e, no meio da mudança, será executado com as permissões do usuário. Eu estou tentando descobrir se há uma maneira de fazer um script fazer isso para mim em um único comando?

Antes que alguém pergunte, tentar obter minhas visudo permissões estendidas é bem difícil. Enquanto eu provavelmente poderia su usando a senha eu não sei a senha do usuário, não quero alterá-lo, e realmente deve codificá-lo no meu script de qualquer maneira, tão normal su sem sudo não é realmente uma opção. Parece que tem que haver alguma maneira de trabalhar com o comando que estou autorizado a usar?

    
por dsollen 12.09.2014 / 21:54

2 respostas

7

Coloque os comandos que você deseja executar como o outro usuário em um arquivo separado, user2commands e, em seguida, faça

sudo su - user < user2commands

Se você não quiser ter um arquivo separado, considere:

sudo su - user << EOF
    commands to be run as the other user
        ︙
EOF
    
por 13.09.2014 / 00:05
1

Da minha experiência pessoal, isso nunca funcionou. Descobrir uma solução cria mais trabalho e pode não funcionar corretamente se você não tiver permissões de root.

    
por 12.09.2014 / 23:07

Tags