Vorrei utilizzare la sostituzione di processo bash per un comando sudo.Uso della sostituzione di processo bash per un comando sudo
Per esempio, ecco un comando non sudo che funziona per me:
$ cat <(echo "installed.txt")
installed.txt
Ed ecco una versione sudo del comando che non funziona:
$ sudo cat <(echo "installed.txt")
cat: /dev/fd/63: Bad file descriptor
Leggere la pagina man sudo , sembra che sudo chiuda tutti tranne i descrittori di file stdin/stdout/stderr prima di eseguire il comando come root. Questo mi porta a pensare che bash sta creando il descrittore (e sta eseguendo la sostituzione del processo) prima di eseguire il comando sudo.
Ho modificato la shell di root in bash (invece di sh default). Ho verificato che il comando funzioni correttamente quando si accede come root. Non funziona solo tramite un comando sudo.
Qual è la tecnica appropriata per ottenere ciò che sto cercando di fare qui? Eval, quoting, sudo flag, sudoers file mod, altro?
Tutto è un one-liner; Mi piacerebbe evitare di doverlo fare. –
@ClaytonStanley Quindi utilizzare le soluzioni fornite nelle altre (molto buone) risposte ... –