Come posso eseguire i comandi come un altro utente con il loro .bash_profile anziché l'utente corrente?

StackOverflow https://stackoverflow.com/questions/9394175

Domanda

Voglio eseguire un comando come utente non root in uno script di avvio (RC.LOCAL). Il comando che voglio eseguire è in realtà un alias nell'utente non root .bash_profile. Ho provato a usare

su - myuser -c aliased_cmd

Ma questo non funziona. Se sono semplicemente digitato

su - myuser
# wait for login...
aliased_cmd

Funziona bene, ma ovviamente questo non è appropriato nello script reale. Naturalmente potrei copiare gli alias e le funzioni che vorrei usare nel file RC.local reale, ma questo sembra un po 'sciocco ... forse c'è un'opzione che non conosco o un modo per usare sudo per questo?

È stato utile?

Soluzione

Dopo aver approvato il profilo, includi quanto segue

shopt -s expand_aliases

Altri suggerimenti

Citando man su:

Quando viene utilizzato, deve essere specificato come ultima opzione SU.

Non specifica cosa succede se non è l'ultima opzione. Inoltre, nella sinossi il nome utente è dopo tutte le opzioni.

Hai provato su -c aliased_cmd - myuser o su -l -c aliased_cmd myuser?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top