Execute o script whiptail após o login com o sudo

1

Estou criando um script de configuração de máquina virtual usando o whiptail que gostaria de iniciar automaticamente depois que o usuário faz o login. O problema é que não quero que o usuário seja root, mas porque o usuário precisa ser capaz de mudar coisas como hostname, endereço ip, adicionar diretórios, etc. eles precisarão de privilégios sudo para que o script realmente faça o trabalho.

O que eu fiz até agora foi criado um usuário que usa meu script de shell whiptail:

adduser -M -s /scripts/whiptail_config.sh user1

Também adicionei user1 a sudoers usando visudo :

user1 ALL=(root) NOPASSWD: /scripts/whiptail3_config.sh

Eu alterei /etc/init/tty1.conf para registrar automaticamente esse usuário em:

exec /sbin/getty -8 38400 tty1 -a user1 

Até esse ponto, meu script de shell whiptail_config.sh é carregado após a inicialização e o login forçado. No entanto, qualquer coisa que realmente exija o acesso do sudo nos erros de script com a mensagem Permission denied... .

O que eu estou procurando fazer é possível? Existem alternativas que eu não considerei e deveria? Obrigado!

    
por Godzilla74 09.08.2016 / 20:51

1 resposta

1

Se /scripts/whiptail3_config.sh não fizer fazer sudo , ele não terá permissões. Você pode fazer o script verificar o uid sob o qual ele está sendo executado e o sudo para si mesmo.

Algo como

#!/bin/bash
[ $UID != 0 ] && exec sudo $0 "$@"
# the rest of the script...
    
por 09.08.2016 / 22:15