Come aggiungere systematically secure_path nel file sudoers

Sto cercando di creare uno script di dati utente per un'istanza EC2 che costruisce il nodo e npm da github e quindi avvia un servizio. Per ingrassare queste ruote, devo aggiungere:

:/usr/local/bin 

alla fine della row in / etc / sudoers che inizia:

  • Come segnalare la presenza di un model tramite il codice di output, senza modificare STDOUT
  • Usi pratici della bandiera immutabile in Linux
  • Come faccio a sapere quale versione di Linux è in esecuzione?
  • Lo scambio viene utilizzato quando la RAM è quasi metà libera
  • Puppet - Qualsiasi modo per copiare i file di configuration personalizzati predefiniti per il software sui client dal master fantoccio (host)?
  • Array lento md RAID-1
  •  Defaults secure_path=" 

    https://superuser.com/questions/927512/how-to-set-path-for-sudo-commands parla di utilizzare visudo per get questo risultato, ma voglio farlo in modo programmato all'interno dei dati utente EC2.

    https://stackoverflow.com/questions/16282789/adding-sudo-permissions-to-sudoers-for-user-via-shell-script parla di modificare il file sudoers, ma sembra terribilmente sopra cotto per quello che sto cercando realizzare.

    Ho pensato che sarebbe stato facile da incollare la linea e sostituirlo, ma sono stumped. Non solo a causa di quella fastidiosa chiusura di virgola invertita!

  • l'esecuzione di un puppet di uno script python in cui il command os.system (...) non funziona
  • la ricostruzione dei pacchetti e il gestore di pacchetti su debian
  • Traffico Linux che forma con TC
  • Come prendere istantanea del filesystem in linux (file, solo i loro formati, non i loro dati)
  • Winbind / AD: Utenti locali con nomi utente identici AD
  • Migliorare le performance TCP su una networking gigabit con un sacco di connessioni e un elevato traffico di piccoli pacchetti
  • 2 Solutions collect form web for “Come aggiungere systematically secure_path nel file sudoers”

    Se puoi vivere con la sostituzione del valore secure_path invece di aggiungerlo, puoi utilizzare una soluzione molto più semplice. Di solito sudo ha una directory di configuration come /etc/sudoers.d where è ansible eliminare altri file di configuration.

    Basta creare un file con il tuo completo secure_path :

     Defaults secure_path="<default value>:/usr/local/bin" 

    Questo sovrascrive il valore della configuration principale. Se il valore del path è lo stesso per tutte le vostre macchine, questo può essere facilmente implementato con script o un pacchetto.

    Questo ha il vantaggio aggiuntivo che non è necessario controllare e eventualmente unire file di configuration quando il pacchetto sudo viene aggiornato in futuro.

    supponendo di sapere che la linea con secure_path esiste, un semplice command sed per farlo

     sed -i -e '/secure_path/ s[=.*[&:/usr/local/bin[' /etc/sudoers 

    o un po 'più sofisticato (verifica più syntax sull'ingresso):

     sed -i -r -e '/^\s*Defaults\s+secure_path/ s[=(.*)[=\1:/usr/local/bin[' /etc/sudoers 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.