GNU/Linux >> Tutoriales Linux >  >> Linux

Su Options – ¿Ejecutar comando como otro usuario?

Me preguntaba cómo ejecutar un comando como otro usuario desde un script.

Tengo el propietario del script establecido como root. También tengo el siguiente comando ejecutándose dentro del script para ejecutar el comando como el usuario de Hudson:

su -c command hudson

¿Es esta la sintaxis correcta?

Respuesta aceptada:

Sí. Aquí está la --help :

$ su --help
Usage: su [options] [LOGIN]

Options:
  -c, --command COMMAND         pass COMMAND to the invoked shell
  -h, --help                    display this help message and exit
  -, -l, --login                make the shell a login shell
  -m, -p,
  --preserve-environment        do not reset environment variables, and
                                keep the same shell
  -s, --shell SHELL             use SHELL instead of the default in passwd

Y algunas pruebas (utilicé sudo como no sé la contraseña de nobody cuenta)

$ sudo su -c whoami nobody
[sudo] password for oli: 
nobody

Cuando su comando toma argumentos, debe citarlo. Si no lo hace, ocurrirán cosas extrañas. Aquí estoy —como root— tratando de crear un directorio en /home/oli (como oli) sin citando el comando completo:

# su -c mkdir /home/oli/java oli
No passwd entry for user '/home/oli/java'

Solo se lee mkdir como el valor para -c flag y está tratando de usar /home/oli/java como nombre de usuario. Si lo citamos, simplemente funciona:

# su -c "mkdir /home/oli/java" oli
# stat /home/oli/java
  File: ‘/home/oli/java’
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 811h/2065d  Inode: 5817025     Links: 2
Access: (0775/drwxrwxr-x)  Uid: ( 1000/     oli)   Gid: ( 1000/     oli)
Access: 2016-02-16 10:49:15.467375905 +0000
Modify: 2016-02-16 10:49:15.467375905 +0000
Change: 2016-02-16 10:49:15.467375905 +0000
 Birth: -

Linux
  1. Opciones útiles de ps

  2. ¿Explicar las opciones del comando Readlink?

  3. ¿Cómo recordar las opciones de comando?

  4. ¿Creación de usuarios con múltiples opciones de comando?

  5. Linux su comando

Mis opciones favoritas de comando principal de Linux

Comando Su en Linux (Cambiar de Usuario)

Comando de identificación en Linux

Comando Usermod en Linux

Comando su en Linux

Ejecutando Apache como un usuario diferente