Documentation for a newer release is available. View Latest

Obtendo Privilégios

Os administradores do sistema e, em alguns casos, os usuários, precisam realizar certas tarefas com acesso administrativo. Acessar o sistema como usuário root é potencialmente perigoso e pode causar danos generalizados ao sistema e aos dados. Este capítulo cobre maneiras de obter privilégios administrativos usando programas setuid como su e sudo. Esses programas permitem que usuários específicos realizem tarefas que normalmente estariam disponíveis apenas para o usuário root, mantendo um alto nível de controle e segurança do sistema.

Veja o Red   Hat Enterprise Linux 7Guia de segurança para obter mais informações sobre controles administrativos, perigos potenciais e maneiras de evitar a perda de dados resultante do uso impróprio de acesso privilegiado.

O Comando su

Quando um usuário executa o comando su, é solicitada a senha root e, após a autenticação, é fornecido um prompt de shell` root`.

Uma vez logado usando o comando su, o usuário é o usuário root e tem acesso administrativo absoluto ao sistema. Observe que este acesso ainda está sujeito às restrições impostas pelo SELinux, caso esteja habilitado. Além disso, depois que um usuário se torna root, é possível para ele usar o comando su para mudar para qualquer outro usuário no sistema sem ser solicitado a inserir uma senha.

Como esse programa é tão poderoso, os administradores de uma organização podem querer limitar quem tem acesso ao comando.

Uma das maneiras mais simples de fazer isso é adicionar usuários ao grupo administrativo especial denominado wheel. Para fazer isso, digite o seguinte comando como root:

~]# usermod -a -G wheel username

No comando anterior, substitua username pelo nome de usuário que você deseja adicionar ao grupo wheel.

Você também pode usar a ferramenta de configurações do Usuários para modificar as associações de grupo, como segue. Observe que você precisa de privilégios de administrador para executar este procedimento.

  1. Pressione a tecla Super para entrar na Visão geral das atividades, digite Users e pressione Enter. A ferramenta de configurações do Usuários é exibida. A tecla Super aparece em uma variedade de formas, dependendo do teclado e de outro hardware, mas geralmente como a tecla Windows ou Command e, normalmente, à esquerda de barra de espaço.

  2. Para habilitar a realização de alterações, clique no botão Desbloquear e insira uma senha de administrador válida.

  3. Clique em um ícone de usuário na coluna esquerda para exibir as propriedades do usuário no painel direito.

  4. Altere o tipo de conta de Padrão para` Administrador`. Isso adicionará o usuário ao grupo wheel.

Consulte Gerenciando usuários em um ambiente gráfico para obter mais informações sobre a ferramenta Usuários.

Depois de adicionar os usuários desejados ao grupo wheel, é aconselhável permitir que apenas esses usuários específicos usem o comando su. Para fazer isso, edite o arquivo de configuração do PAM para su, /etc/pam.d/su. Abra este arquivo em um editor de texto e descomente a seguinte linha removendo o caractere #:

#auth           required        pam_wheel.so use_uid

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

Nota

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

Important

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.

Recursos adicionais

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.

Documentação Instalada
  • 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.

Documentação online
See Also
  • Managing Users and Groups documents how to manage system users and groups in the graphical user interface and on the command line.