SU(1) Ordenes de usuario SU(1) NOMBRE su - ejecuta una orden con identificadores de grupo y de usuario alternativos SINOPSIS su [options] [-] [user|UID [argument...]] DESCRIPCION su permite invocar ordenes con identificadores de usuario y grupo distintos. Cuando se invoca sin especificar usuario, su lanza una interfaz de ordenes interactiva como root. Cuando se especifica el usuario, se pueden pasar argumentos adicionales, en cuyo caso se pasan a la interfaz de ordenes. Buscando compatibilidad con versiones anteriores, su establece no cambiar el directorio actual y definir solo las variables de entorno HOME y SHELL (ademas de USER y LOGNAME si el usuario objetivo no es root). Se recomienda usar siempre la opcion --login (en lugar de su atajo -) para evitar efectos secundarios causados al mezclar entornos. Esta version de su usa PAM para autenticacion, gestion de cuentas y sesiones. Algunas opciones de configuracion presentes en otras implementaciones de su, como el soporte para el grupo wheel, se configuran a traves de PAM. su se diseno principalmente para usuarios sin privilegios, la solucion recomendada para usuarios con privilegios (por ejemplo, scripts ejecutados como root) es usar la orden runuser(1) que no requiere autenticacion y proporciona una configuracion PAM separada. Si no se requiere la sesion 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 modificacion final del entorno. Las opciones de linea de ordenes como --login y --preserve-environment afectan al entorno antes de que sea modificado por PAM. Desde la version 2.38 su reinicia los limites 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 Envia -f a la interfaz de ordenes, que puede o no ser util, dependiendo de la interfaz de ordenes. -g, --group grupo Especifica el grupo primario. Esta opcion esta disponible solo para el usuario root. -G, --supp-group=grupo Especifica un grupo suplementario. Esta opcion esta disponible solo para el usuario root. Si no se especifica la opcion --group, el primer grupo suplementario especificado tambien se usa como grupo primario. -, -l, --login Inicia la interfaz de ordenes con sesion (n. del t. login shell) con un entorno parecido a una sesion 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: o clear all the environment variables except TERM, COLORTERM, NO_COLOR and variables specified by --whitelist-environment o initialize the environment variables HOME, SHELL, USER, LOGNAME, and PATH o change to the target user's home directory o 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 opcion se ignora si se especifica la opcion --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 caracteristica esta disenada principalmente para sesiones interactivas. Si la entrada estandar 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 ordenes restringida (es decir, no esta en la lista de /etc/shells), la opcion --shell y las variables de entorno SHELL se ignoran a menos que el usuario que llama a su sea root. La interfaz de ordenes se selecciona de acuerdo con las siguientes reglas, en este orden: o la interfaz de ordenes especificada con --shell o la interfaz de ordenes especificada en la variable de entorno SHELL, en caso de usar la opcion --preserve-environment o la interfaz de ordenes de la cuenta del usuario objetivo como aparece en passwd o /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. SENALES Al recibir SIGINT, SIGQUIT o SIGTERM, su termina a su hijo y despues se termina a si misma con la senal recibida. El hijo se termina con SIGTERM, despues de un intento fallido y 2 segundos de retardo el hijo se mata con SIGKILL. FICHEROS DE CONFIGURACION su lee los archivos de configuracion /etc/default/su y /etc/login.defs. Los siguientes elementos de configuracion son relevantes para su: FAIL_DELAY (numero) Espera en segundos en caso de un fallo de autenticacion. El numero 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 tambien se ve afectada por la opcion de linea de ordenes --login y la configuracion del sistema PAM (por ejemplo, pam_env(8)). ESTADO DE SALIDA su normalmente devuelve el estado de salida de la orden que lanzo. Si la orden fue terminada por una senal, su devuelve el numero de la senal mas 128. Estado de salida generado por su: 1 Error generico antes de lanzar la orden solicitada 126 La orden solicitada no pudo iniciarse 127 La orden solicitada no se encontro FICHEROS /etc/pam.d/su archivo de configuracion PAM predeterminado /etc/pam.d/su-l archivo de configuracion PAM si se especifica --login /etc/default/su orden especifica para el archivo de configuracion logindef /etc/login.defs archivo de configuracion 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 sesion en el fichero btmp, pero no escribe en el fichero lastlog. Esto puede usarse para controlar el comportamiento de su por la configuracion de PAM. Si quiere usar el modulo pam_lastlog(8) para imprimir un mensaje de advertencia acerca de los intentos fallidos de inicio de sesion, tiene que configurar pam_lastlog(8) para actualizar el fichero lastlog tambien. Por ejemplo mediante: session required pam_lastlog.so nowtmp HISTORIA Esta version de la orden su se deriva de la orden su de coreutils, la cual se basa en una implementacion de David MacKenzie. La version de util-linux ha sido refactorizada por Karel Zak. VEASE TAMBIEN setpriv(1), login.defs(5), shells(5), pam(8), runuser(1) INFORMAR DE ERRORES For bug reports, use the issue tracker . DISPONIBILIDAD La orden su forma parte del paquete util-linux, el cual puede descargarse de Linux Kernel Archive . util-linux 2.42.2 2026-06-16 SU(1)