SU(1)

NOMBRE
su - ejecuta una orden con identificadores de grupo y de usuario alternativos

SINOPSIS

su [options] [-] [user|UID [argument...]]

DESCRIPCIÓN

su permite invocar órdenes con identificadores de usuario y grupo distintos.

Cuando se invoca sin especificar usuario, su lanza una interfaz de órdenes interactiva como root. Cuando se especifica el usuario, se pueden pasar argumentos adicionales, en cuyo caso se pasan a la interfaz de órdenes.

Buscando compatibilidad con versiones anteriores, su establece no cambiar el directorio actual y definir solo las variables de entorno HOME y SHELL (además de USER y LOGNAME si el usuario objetivo no es root). Se recomienda usar siempre la opción --login (en lugar de su atajo -) para evitar efectos secundarios causados al mezclar entornos.

Esta versión de su usa PAM para autenticación, gestión de cuentas y sesiones. Algunas opciones de configuración presentes en otras implementaciones de su, como el soporte para el grupo wheel, se configuran a través de PAM.

su se diseñó principalmente para usuarios sin privilegios, la solución recomendada para usuarios con privilegios (por ejemplo, scripts ejecutados como root) es usar la orden runuser(1) que no requiere autenticación y proporciona una configuración PAM separada. Si no se requiere la sesión PAM, entonces se recomienda usar la orden setpriv(1).

Tenga en cuenta que su en todos los casos usa PAM (pam_getenvlist(3)) para realizar la modificación final del entorno. Las opciones de línea de órdenes como --login y --preserve-environment afectan al entorno antes de que sea modificado por PAM.

Desde la versión 2.38 su reinicia los límites de recursos de proceso RLIMIT_NICE, RLIMIT_RTPRIO, RLIMIT_FSIZE, RLIMIT_AS y RLIMIT_NOFILE.

OPCIONES

-c, --command orden
    Pass command to the shell with the -c option. Creates a new session via setsid(2). Refer to --session-command to keep the same session.

-f, --fast
    Envía -f a la interfaz de órdenes, que puede o no ser útil, dependiendo de la interfaz de órdenes.

-g, --group grupo
    Especifica el grupo primario. Esta opción está disponible solo para el usuario root.

-G, --supp-group=grupo
    Especifica un grupo suplementario. Esta opción está disponible solo para el usuario root. Si no se especifica la opción --group, el primer grupo suplementario especificado también se usa como grupo primario.

-, -l, --login
    Inicia la interfaz de órdenes con sesión (n. del t. login shell) con un entorno parecido a una sesión real.

    Note that on systemd(1)-based systems, a new session may be defined as a real entry point to the system. However, su does not create a real session (by PAM) from this point of view. You need to use tools like systemd-run(1) or machinectl(1) to initiate a complete, real session.

    su hace lo siguiente:

        • clear all the environment variables except TERM, COLORTERM, NO_COLOR and variables specified by --whitelist-environment

        • initialize the environment variables HOME, SHELL, USER, LOGNAME, and PATH

        • change to the target user’s home directory

        • set argv[0] of the shell to '-' in order to make the shell a login shell

-m, -p, --preserve-environment
    Preserva el entorno completo, es decir, no establece HOME, SHELL, USER o LOGNAME. Esta opción se ignora si se especifica la opción --login.

-P, --pty
    Create a pseudo-terminal for the session. The independent terminal provides better security as the user does not share a terminal with the original session. Please note security advice about TIOCSTI vulnerability below.

    The entire session can also be moved to the background (e.g., su --pty - user -c application &). If the pseudo-terminal is enabled, then su works as a proxy between the sessions (sync stdin and stdout).

    Esta característica está diseñada principalmente para sesiones interactivas. Si la entrada estándar no es una terminal, como por ejemplo un pipe (p. e., echo "date" | su --pty), entonces la bandera ECHO para la pseudo-terminal se deshabilita para evitar mostrar mensajes desordenados.

-s, --shell shell
    Invoca la shell especificada en lugar de la predeterminada. Si el usuario objetivo tiene una interfaz de órdenes restringida (es decir, no está en la lista de /etc/shells), la opción --shell y las variables de entorno SHELL se ignoran a menos que el usuario que llama a su sea root.

    La interfaz de órdenes se selecciona de acuerdo con las siguientes reglas, en este orden:

        • la interfaz de órdenes especificada con --shell

        • la interfaz de órdenes especificada en la variable de entorno SHELL, en caso de usar la opción --preserve-environment

        • la interfaz de órdenes de la cuenta del usuario objetivo como aparece en passwd

        • /bin/sh

--session-command=orden
    Same as -c, but do not create a new session. (Discouraged.) Please note security advice about TIOCSTI vulnerability below.

-T, --no-pty
    Do not create a pseudo-terminal, opposite of --pty and -P. Please note security advice about TIOCSTI vulnerability below.

-w, --whitelist-environment lista
    No reinicia las variables de entorno especificadas en la lista separada por comas cuando se limpia el entorno para --login. Se ignora la lista de aprobados para las variables de entorno HOME, SHELL, USER, LOGNAME y PATH.

-h, --help
    Mostrar texto de ayuda y finalizar.

-V, --version
    Display version and exit.

SEÑALES

Al recibir SIGINT, SIGQUIT o SIGTERM, su termina a su hijo y después se termina a sí misma con la señal recibida. El hijo se termina con SIGTERM, después de un intento fallido y 2 segundos de retardo el hijo se mata con SIGKILL.

FICHEROS DE CONFIGURACIÓN

su lee los archivos de configuración /etc/default/su y /etc/login.defs. Los siguientes elementos de configuración son relevantes para su:

FAIL_DELAY (número)
    Espera en segundos en caso de un fallo de autenticación. El número debe ser un entero no negativo.

ENV_PATH (cadena)
    Define la variable de entorno PATH para un usuario normal. El valor predeterminado es /usr/local/bin:/bin:/usr/bin.

ENV_ROOTPATH (cadena), ENV_SUPATH (cadena)
    Define la variable de entorno PATH para root. ENV_SUPATH toma precedencia. El valor predeterminado es /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin.

ALWAYS_SET_PATH (booleano)
    Si se establece a yes y no se especificaron --login y --preserve-environment, entonces su inicializa PATH.

    La variable de entorno PATH puede ser diferente en sistemas donde /bin y /sbin se fusionan en /usr; esta variable también se ve afectada por la opción de línea de órdenes --login y la configuración del sistema PAM (por ejemplo, pam_env(8)).

ESTADO DE SALIDA

su normalmente devuelve el estado de salida de la orden que lanzó. Si la orden fue terminada por una señal, su devuelve el número de la señal más 128.

Estado de salida generado por su:

1
    Error genérico antes de lanzar la orden solicitada

126
    La orden solicitada no pudo iniciarse

127
    La orden solicitada no se encontró

FICHEROS

/etc/pam.d/su
    archivo de configuración PAM predeterminado

/etc/pam.d/su-l
    archivo de configuración PAM si se especifica --login

/etc/default/su
    orden específica para el archivo de configuración logindef

/etc/login.defs
    archivo de configuración logindef global

SECURITY NOTES

If su shares a terminal with the original session, it is potentially vulnerable to privilege escalation through TIOCSTI/TIOCLINUX ioctl command injection. There are two built-in ways to prevent this: Either you can use su with the -c option, which starts a new session via setsid(2) without a controlling terminal. Or, if your use case requires a controlling terminal, for example an interactive session, you can instruct su to use a pseudo terminal with the --pty or -P option.

Por razones de seguridad, su siempre registra los intentos fallidos de inicio de sesión en el fichero btmp, pero no escribe en el fichero lastlog. Esto puede usarse para controlar el comportamiento de su por la configuración de PAM. Si quiere usar el módulo pam_lastlog(8) para imprimir un mensaje de advertencia acerca de los intentos fallidos de inicio de sesión, tiene que configurar pam_lastlog(8) para actualizar el fichero lastlog también. Por ejemplo mediante:

    session required pam_lastlog.so nowtmp

HISTORIA

Esta versión de la orden su se deriva de la orden su de coreutils, la cual se basa en una implementación de David MacKenzie. La versión de util-linux ha sido refactorizada por Karel Zak.

VÉASE TAMBIÉN

setpriv(1), login.defs(5), shells(5), pam(8), runuser(1)

INFORMAR DE ERRORES

For bug reports, use the

DISPONIBILIDAD

La orden su forma parte del paquete util-linux, el cual puede descargarse de