GNU/Linux >> Linux Esercitazione >  >> Linux

Come consentire all'utente di eseguire un comando contenente virgolette in sudoers?

La soluzione semplice è inserire il tuo comando in uno script e quindi consentire ai tuoi utenti di accedere allo script tramite sudo.

user ALL = (root) NOPASSWD: /path/to/yourscript

Allora

#/bin/bash
chroot /chroots/box /bin/bash -c 'cd /repos/system && git pull'

Assicurati che i tuoi utenti non abbiano accesso in scrittura al tuo script.


modifica:Attenzione, sembra che sudo non gestisca in modo sicuro gli spazi nel comando, quindi non è sicuro usare sudo in questo modo. https://unix.stackexchange.com/a/279142/39281

Invece di usare le virgolette nel file sudoers, puoi evitare gli spazi usando la barra rovesciata:

user ALL = (root) NOPASSWD: chroot /chroots/box /bin/bash -c cd\ /repos/system\ &&\ git\ pull

Puoi ancora usarlo come segue, perché la shell dell'utente gestisce comunque l'argomento tra virgolette:

chroot /chroots/box /bin/bash -c 'cd /repos/system && git pull'

Personalmente mi piace l'altra risposta, metterla in un copione, ma questa risponde alla vera domanda.


Linux
  1. Come eseguire il comando prima dell'accesso dell'utente su Linux?

  2. Come utilizzare il comando id in Linux:5 esempi utili

  3. Come eseguire il comando bash con privilegi sudo in Java?

  4. Come eseguire in remoto il comando ssh un comando sudo senza password

  5. Come faccio a registrare ogni comando eseguito da un utente?

Come usare Sudo e il file Sudoers

Come aggiungere un utente a Sudoers su Ubuntu

Come aggiungere un utente a Sudoer su Debian

Come aggiungere un utente a Sudoer su Fedora

Come utilizzare il comando ulimit in Linux

Come eseguire un comando in uno script della shell?