Primeiro: com certeza você está desperdiçando seu esforço.
Leia a página de manual do shutdown
no seu sistema : O argumento do tempo é obrigatório em todas as implementações que eu já vi. / p>
Se você tentar executar shutdown -h
sem argumento de tempo, ele gritará com você:
[mgraziano@monitor ~]$ sudo shutdown -h
Password:
usage: shutdown [-] [-h | -p | -r | -k] [-o [-n]] time [warning-message ...]
Para responder à sua pergunta:
Opção 1: Permitindo a execução do comando de desligamento sem solicitar direitos de sudo
Permitir explicitamente o desligamento com a opção NOPASSWD
(leia man sudoers
para informações) ou adicione seu usuário ao grupo com permissão para executar o desligamento (geralmente operator
).
Opção 2: Encontre uma permissão para conceder permissão sudo ao script para que eu possa soltar o sudo lá.
Você não pode fazer isso do jeito que pensa porque sudo
não funciona dessa maneira - Permissões são concedidas aos usuários.
O melhor que você pode fazer é permitir que o script seja executado usando sudo
, mas isso não compra nada além da Opção 1 (e, como você mencionou, abre algumas possíveis falhas de segurança em seu script, já que você permitindo que seja executado como root).