Sto creando uno script bash che richiede di eseguire comandi come utente specifico. Di conseguenza sto usando il comando:
runuser
Ho testato questo script e funziona perfettamente in Ubuntu Server 14.10. Tuttavia, durante il test su 14.04 e 12 mi imbatto nel seguente errore:
runuser: command not found
Ciò accade ogni volta che viene utilizzato il comando runuser.
Sto usando il seguente comando per creare un nuovo utente:
adduser --no-create-home --home "/home/$homedir" --disabled-password --gecos "$realname" "$uname" ; usermod -p "$passwd" "$uname"
C'è qualcosa di specifico che deve essere specificato durante la creazione del nuovo utente? C'è una dipendenza particolare che manca?
Modifiche per domande:
Uscita dell'eco $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Output di ls -l /sbin/runuser
ls: cannot access /sbin/runuser: No such file or directory
Il motivo per cui voglio usare runuser vs su è a causa di quanto segue:
Quando utilizzo runuser posso eseguire i seguenti comandi:
runuser user -c 'cd'
runuser user -c 'wget http://file.com'
Mentre con su devo concatenare i comandi in questo modo:
su user -c 'cd; wget http://file.com'
Risposta accettata:
runuser
è un comando recente, è apparso in util-linux 2.23. Ubuntu 14.04 include util-linux 2.20, quindi non ha ancora questo comando.
runuser
non è molto utile. Basta usare su
invece. Nota che il comando runuser user -c 'cd'
in realtà non fa nulla: l'ambito di cd
non si estende alla chiamata successiva a runuser
. Dovresti usare runuser user -c 'cd && wget http://file.com'
comunque. Usa su user -c 'cd && wget http://file.com'
invece.