How to run commands as the Root user on Oracle Linux and Solaris

Por motivos óbvios de segurança, não é esperado que o SysAdmin conceda a senha do usuário root para os DBAs (assim como não concedemos o usuário SYSTEM do banco para terceiros). Há a abordagem melhor ainda, quando estas credencias não ficam na posse de nenhuma dessas equipes, e sim em um cofre de senhas administrado pelo time de Segurança.

A questão é que a cada dia que passa, é mais comum precisarmos rodar comandos “root” com um usuário “comum”. Para isso, podemos usufruir do recurso do SUDO. Este é um conceito fácil que vou exemplificar neste artigo.

Ambiente de teste (também é válido em Oracle Linux):

-bash-4.4$ cat /etc/*release*
NAME="Oracle Solaris"
PRETTY_NAME="Oracle Solaris 11.4"
CPE_NAME="cpe:/o:oracle:solaris:11:4"
ID=solaris
VERSION=11.4
VERSION_ID=11.4
BUILD_ID=11.4.0.0.1.15.0
HOME_URL="https://www.oracle.com/solaris/"
SUPPORT_URL="https://support.oracle.com/"
                             Oracle Solaris 11.4 X86
  Copyright (c) 1983, 2018, Oracle and/or its affiliates.  All rights reserved.
                            Assembled 16 August 2018
-bash-4.4$

Logado com um usuário não privilegiado, validando que o mesmo não tem acesso ao comando shutdown:

-bash-4.4$ id
uid=100(swiv) gid=10(staff)
-bash-4.4$ shutdown
/usr/sbin/shutdown:  Only root can run /usr/sbin/shutdown
-bash-4.4$

Neste caso, o SA poderia conceder um acesso restrito ao usuário em questão para que o mesmo tenha permissão de executar este comando, conforme exemplo abaixo. Essas regras são persistidas no arquivo “/etc/sudoers”, mas podemos utilizar o “visudo” para fazer as edições, pois ele garante que as operações se manterão íntegras (principalmente ao bloquear o arquivo para os casos de edição simultânea) e faz a validação de sintaxe:

root@solariSWIV:~# id
uid=0(root) gid=0(root)
root@solariSWIV:~# visudo

Adicionado a seguinte linha:

root@solariSWIV:/sbin# cat /etc/sudoers | grep swiv
swiv ALL=/sbin/shutdown
root@solariSWIV:/sbin#

Agora logado com o usuário, incluímos a instrução “sudo” no momento da execução. Será solicitado a senha deste usuário comum, e o comando é executado com sucesso.

-bash-4.4$ id
uid=100(swiv) gid=10(staff)
-bash-4.4$ sudo /sbin/shutdown
Password:

Shutdown started.    Mon Jan  9 22:49:30 CET 2023

Broadcast Message from root (pts/3) on solariSWIV Mon Jan  9 22:49:30...
The system solariSWIV will be shut down in 1 minute


Esta é a melhor abordagem: conceder os privilégios necessários, e não mais que isso.

Leave a Comment

Your email address will not be published.