ejecutar su con comandos adicionales

0

Quiero hacer algo como esto:

sudo su -l <user> cd <somedir>

Pero cada vez que doy su argumentos adicionales después de 'usuario', el comando regresa en lugar de darme un shell interactivo.

Michael Böckling
fuente

Respuestas:

1
  • -l proporcionará un inicio de sesión como sesión interactiva
  • puedes probar

    su -l user -c cd /some/place 

    que lo hará

  • su -l user , entonces

  • cd /some/place, luego salga inmediatamente después del comando cd.

tal vez estas buscando ..? (editar 1)

su -l user -c "cd /some/place ; bash -i "
Archemar
fuente
He intentado "su -l user -c cd / some / place", pero eso no me da un shell, vuelve inmediatamente. La variante "cd / some / place; su user" no funciona porque el usuario actual no tiene derechos de acceso a ese directorio.
Michael Böckling
1
@Archemar: gracias, eso fue casi correcto, pero faltaba la bandera -c. Debería ser: su -l user -c "cd / some / place; bash -i" Una vez que corrija la respuesta, la marcaré como tal.
Michael Böckling