Scroll to navigation

SU(1) Órdenes de usuario SU(1)

NOMBRE

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

SINOPSIS

su [opciones] [-] [usuario [argumento...]]

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

Invoca la orden orden con la opción -c.

-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.

Tenga en cuenta que en entornos basados en systemd se puede definir una nueva sesión como punto de entrada real al sistema. Sin embargo, su no crea una sesión real (por PAM) desde este punto de vista. Es necesario que use herramientas como systemd-run o machinectl para iniciar una sesión completa y real.

su hace lo siguiente:

•limpia todas las variables de entorno excepto TERM y las variables especificadas por --whitelist-environment

•inicializa las variables de entorno HOME, SHELL, USER, LOGNAME y PATH

•cambia al directorio de inicio del usuario objetivo

•establece argv[0] de la interfaz de órdenes a - para hacerla una interfaz de órdenes con sesión

-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

Crea una pseudo-terminal para la sesión. La terminal independiente ofrece mejor seguridad dado que el usuario no comparte una terminal con la sesión original. Esto puede usarse para evitar la inyección ioctl en terminales TIOCSTI y otros ataques de seguridad contra descriptores de ficheros. La sesión completa también puede moverse a segundo plano (por ejemplo, su --pty - usuario -c aplicación &). Si la pseudo-terminal está habilitada, entonces su funciona como un proxy entre las sesiones (sincronizando stdin y 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

Igual que -c, pero sin crear una nueva sesión. (No se recomienda.)

-T, --no-pty

No crea una pseudo-terminal, opuesto a --pty y a -P. Tenga en cuenta que invocar sin una pseudo-terminal abre un riesgo de seguridad de escalamiento de privilegios mediante inyección de la orden ioctl TIOCSTI/TIOCLINUX.

-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

NOTAS

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 issue tracker <https://github.com/util-linux/util-linux/issues>.

DISPONIBILIDAD

La orden su forma parte del paquete util-linux, el cual puede descargarse de Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.

2025-09-24 util-linux 2.41.2