Ganando Privilegios

Los administradores de sistema, y en algunos casos los usuarios, necesitan llevar a cabo ciertas tares con acceso administrativo. El acceso al sistema como usuario root`es potencialmente peligroso y puede llevar a daños muy extendidos en el sistema y los datos. Este capítulo cubre diversas maneras de obtener privilegios administrativos usando programas setuid como su y sudo. Estos programas permiten a usuarios específicos llevar a cabo tareas que normalmente solo están disponibles para el usuario `root a la vez que mantienen el mas alto nivel de control y de seguridad del sistema.

Vea en Red Hat Enterprise Linux 7 Guía de Seguridad mas información sobre los controles administrativos, los peligros potenciales y la manera de evitar la perdida de datos como resultado de un uso inapropiado del acceso privilegiado.

El Comando su

Cuando un usuario ejecuta el comando su, se le pide la contraseña de root y, después de la autenticación, se le da un acceso root.

Una vez se ha accedido usando el comando su, el usuario es usuario root y tiene acceso absoluto de administrador al sistema. Advierta que este acceso está todavía sujeto a las restricciones impuestas por SELinux, si está habilitado. Además, una vez que un usuario ha llegado a ser root, es posible para el usar el comando su para cambiar a cualquier otro usuario del sistema sin que le sea pedida la contraseña.

Puesto que este programa es tan poderoso, los administradores de una organización deben limitar a quienes tienen acceso al comando.

Una de las maneras mas sencillas de hacer esto es añadir los usuarios al grupo especial de administradores llamado wheel. Para hacer esto teclee el siguiente comando como root:

~]# usermod -a -G wheel username

En el anterior comando, reemplace username con el nombre del usuario que desea añadir al grupo wheel.

También puede usar la herramienta de ajustes Users para modificar la membresía de grupo tal como sigue. Advierta que necesita privilegios de administrador para llevar a cabo este procedimiento.

  1. Press the Super key to enter the Activities Overview, type Users and then press Enter. The Users settings tool appears. The Super key appears in a variety of guises, depending on the keyboard and other hardware, but often as either the Windows or Command key, and typically to the left of the Spacebar.

  2. To enable making changes, click the Unlock button, and enter a valid administrator password.

  3. Click a user icon in the left column to display the user’s properties in the right-hand pane.

  4. Change the Account Type from Standard to Administrator. This will add the user to the wheel group.

See Managing Users in a Graphical Environment for more information about the Users tool.

After you add the desired users to the wheel group, it is advisable to only allow these specific users to use the su command. To do this, edit the PAM configuration file for su, /etc/pam.d/su. Open this file in a text editor and uncomment the following line by removing the # character:

#auth           required use_uid

This change means that only members of the administrative group wheel can switch to another user using the su command.


The root user is part of the wheel group by default.

The sudo Command

The sudo command offers another approach to giving users administrative access. When trusted users precede an administrative command with sudo, they are prompted for their own password. Then, when they have been authenticated and assuming that the command is permitted, the administrative command is executed as if they were the root user.

The basic format of the sudo command is as follows:

sudo command

In the above example, command would be replaced by a command normally reserved for the root user, such as mount.

The sudo command allows for a high degree of flexibility. For instance, only users listed in the /etc/sudoers configuration file are allowed to use the sudo command and the command is executed in the user’s shell, not a root shell. This means the root shell can be completely disabled as shown in the Red Hat Enterprise Linux 7 Security Guide.

Each successful authentication using the sudo command is logged to the file /var/log/messages and the command issued along with the issuer’s user name is logged to the file /var/log/secure. If additional logging is required, use the pam_tty_audit module to enable TTY auditing for specified users by adding the following line to your /etc/pam.d/system-auth file:

session required disable=pattern enable=pattern

where pattern represents a comma-separated listing of users with an optional use of globs. For example, the following configuration will enable TTY auditing for the root user and disable it for all other users:

session required disable=* enable=root

Another advantage of the sudo command is that an administrator can allow different users access to specific commands based on their needs.

Administrators wanting to edit the sudo configuration file, /etc/sudoers, should use the visudo command.

To give someone full administrative privileges, type visudo and add a line similar to the following in the user privilege specification section:

juan ALL=(ALL) ALL

This example states that the user, juan, can use sudo from any host and execute any command.

The example below illustrates the granularity possible when configuring sudo:

%users localhost=/sbin/shutdown -h now

This example states that any member of the users system group can issue the command /sbin/shutdown -h now as long as it is issued from the console.

The man page for sudoers has a detailed listing of options for this file.


There are several potential risks to keep in mind when using the sudo command. You can avoid them by editing the /etc/sudoers configuration file using visudo as described above. Leaving the /etc/sudoers file in its default state gives every user in the wheel group unlimited root access.

  • By default, sudo stores the sudoer’s password for a five minute timeout period. Any subsequent uses of the command during this period will not prompt the user for a password. This could be exploited by an attacker if the user leaves their workstation unattended and unlocked while still being logged in. This behavior can be changed by adding the following line to the /etc/sudoers file:

    Defaults    timestamp_timeout=value

    where value is the desired timeout length in minutes. Setting the value to 0 causes sudo to require a password every time.

  • If a sudoer’s account is compromised, an attacker can use sudo to open a new shell with administrative privileges:

    sudo /bin/bash

    Opening a new shell as root in this or similar fashion gives the attacker administrative access for a theoretically unlimited amount of time, bypassing the timeout period specified in the /etc/sudoers file and never requiring the attacker to input a password for sudo again until the newly opened session is closed.

Additional Resources

While programs allowing users to gain administrative privileges are a potential security risk, security itself is beyond the scope of this particular book. You should therefore refer to the resources listed below for more information regarding security and privileged access.

Installed Documentation
  • su(1) — The manual page for su provides information regarding the options available with this command.

  • sudo(8) — The manual page for sudo includes a detailed description of this command and lists options available for customizing its behavior.

  • pam(8) — The manual page describing the use of Pluggable Authentication Modules (PAM) for Linux.

Online Documentation
See Also
  • Managing Users and Groups documents how to manage system users and groups in the graphical user interface and on the command line.