Estoy creando un script bash que requiere ejecutar comandos como un usuario específico. Como resultado, estoy usando el comando:
runuser
He probado este script y funciona perfectamente en Ubuntu Server 14.10. Sin embargo, al probarlo en 14.04 y 12 me encuentro con el siguiente error:
runuser: command not found
Esto sucede cada vez que se usa el comando runuser.
Estoy usando el siguiente comando para crear un nuevo usuario:
adduser --no-create-home --home "/home/$homedir" --disabled-password --gecos "$realname" "$uname" ; usermod -p "$passwd" "$uname"
¿Hay algo específico que deba especificarse al crear el nuevo usuario? ¿Hay alguna dependencia en particular que falte?
Ediciones para preguntas:
Salida de echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Salida de ls -l /sbin/runuser
ls: cannot access /sbin/runuser: No such file or directory
La razón por la que quiero usar runuser vs su es por lo siguiente:
Cuando uso runuser puedo ejecutar los siguientes comandos:
runuser user -c 'cd'
runuser user -c 'wget http://file.com'
Mientras que con su tengo que encadenar los comandos de esta manera:
su user -c 'cd; wget http://file.com'
Respuesta aceptada:
runuser
es un comando reciente, apareció en util-linux 2.23. Ubuntu 14.04 incluye util-linux 2.20, por lo que aún no tiene este comando.
runuser
no es muy util Solo usa su
en cambio. Tenga en cuenta que el comando runuser user -c 'cd'
en realidad no hace nada: el alcance de cd
no se extiende a la próxima llamada a runuser
. Tendrías que usar runuser user -c 'cd && wget http://file.com'
de todas formas. Use su user -c 'cd && wget http://file.com'
en su lugar.