Esecuzione di script bash senza chiedere la password

3

Ho scritto un piccolo script di shell che cambia alcune impostazioni che devo cambiare molto. L'ho salvato come un file di comando, quindi fare doppio clic per eseguirlo. Ora, ogni volta che lo eseguo, è chiedere la mia password (anche se solo cambiando quelle impostazioni non richiede alcuna password quando lo faccio a mano). È possibile eseguire lo script di bash, senza che venga richiesta una password ogni volta? Tutto ciò che fa è disattivare le mie impostazioni proxy ...

Lo script:

#!/bin/bash
osascript -e 'quit app "MyAppsAnywhere"'
networksetup -setautoproxystate Wi-Fi off
exit 0
    
posta lte__ 14.12.2017 - 15:53
fonte

1 risposta

2

Potresti usare

sudo networksetup -setautoproxystate Wi-Fi off

e quindi configura sudoers(5) per consentire quel comando esatto (o qualsiasi networksetup invocazione (o qualsiasi comando qualsiasi)) senza una password, anche se questo in genere richiede un po 'di giocherellare con visudo(8) e se ti capita di sbagliare potrebbe bloccare fuori dall'uso futuro di sudo(1) . Apri una shell di root, crea un backup di /etc/sudoers , modifica il file eseguendo visudo , testalo e usa la shell di root per ripristinare il backup della configurazione se le cose vanno male. Le pertinenti righe di configurazione sudoers(5) saranno sulla falsariga di

# only with these args
yourloginnamehere ALL=(root) NOPASSWD: /usr/sbin/networksetup-setautoproxystate Wi-Fi off, /usr/sbin/networksetup-setautoproxystate Wi-Fi on

# any arguments to the command
yourloginnamehere ALL=(root) NOPASSWD: /usr/sbin/networksetup

# no password prompts at all from sudo ever
yourloginnamehere  ALL=(ALL) NOPASSWD: ALL

Anche visudo può eseguire uno strano editor per impostazione predefinita, quindi potresti voler leggere le EDITOR e DISPLAY variabili d'ambiente e le relative sudo domande e documentazione prima di rimanere bloccato in vi . ..

    
risposta data 14.12.2017 - 17:47
fonte

Leggi altre domande sui tag