Configuração do terminal
Como root, precisamos editar o arquivo /etc/sudoers
executando visudo
(OBSERVAÇÃO: Você pode export EDITOR=vim
para obter realce de sintaxe ou usar o editor de sua escolha).
Em torno das linhas 83,86 você deve ver duas linhas que são semelhantes (no vim você pode executar :set number
para mostrar números de linha):
83 # %wheel ALL=(ALL) ALL
84
85 ## Same thing without a password
86 # %wheel ALL=(ALL) NOPASSWD: ALL
A diferença é que a linha # 83 exigirá que o usuário insira a senha their para autenticar, enquanto a linha # 86 permitirá ao usuário sudo
sem solicitar novamente sua senha. As melhores práticas de segurança afirmam que o # 83 é mais seguro; no entanto, dependendo da sua situação # 86 pode ser apropriado (por exemplo, eu geralmente uso # 86 durante a configuração de um servidor, em seguida, mude para # 83).
Saia e salve esse arquivo.
Agora, precisamos informar ao sistema quais usuários podem escalonar suas permissões por meio de sudo
. Isso é feito adicionando-os ao grupo wheel
, que é o que o %wheel
indicou no arquivo sudoers
que editamos anteriormente. Veja man sudoers
para mais informações sobre esse formato de arquivo.
$ usermod -a -G wheel erebusbat
Esse comando adicionará o usuário erebusbat
ao grupo wheel, combinado com a nossa alteração anterior, todos eles para executar qualquer comando como root:
erebusbat@centos$ sudo whoami
root
erebusbat@centos$
Configuração X / GNOME
No CentOS / RHEL 5 e abaixo, a autenticação X é gerenciada por um conjunto de programas chamados consolehelper
e userhelper
. Basicamente, o que acontece é o seguinte: quando um usuário executa um programa (digamos, pirut
) ele verifica se há arquivos chamados pirut
na pasta /etc/security/console.apps/
, se olharmos para um desses arquivos, parece:
USER=root
PROGRAM=/usr/sbin/pirut
SESSION=true
KEEP_ENV_VARS=http_proxy,ftp_proxy
Isso diz a consolehelper
/ userhelper
para permitir que o usuário autentique e execute o programa como root. Se nósman userhelper
, vemos que podemos adicionar uma diretiva UGROUPS=
para que, se um usuário estivesse nesse grupo, eles tivessem permissão para autenticar como eles mesmos, mas executassem o aplicativo como o usuário especificado na diretiva USER=
. Então, o arquivo pirut
precisa ser parecido com:
USER=root
UGROUPS=wheel
PROGRAM=/usr/sbin/pirut
SESSION=true
KEEP_ENV_VARS=http_proxy,ftp_proxy
Assim que fizermos essa alteração sempre que tentarmos executar pirut
como usuário normal (Adicionar / Remover Programas no Menu do GNOME), uma das duas coisas acontecerá:
- Será solicitada a NOSSA senha e o programa será iniciado como
root
. - Será solicitada a senha de
root
se o usuário atual não estiver no grupowheel
.
No entanto, alterar todos esses arquivos manualmente pode ser um PIA, por isso trabalhamos de maneira inteligente e não mais difícil:
$ cd /etc/security/console.apps/
$ sudo su -
$ pcregrep -ML '^UGROUPS=' * | xargs sed -i 's/^USER=root/USER=root\nUGROUPS=wheel/'
O comando sudo su -
não é necessário se você estiver atualmente root
. O comando não irá 'consertar' qualquer arquivo, de modo que ele possa ser chron
ed ou configurado para ser executado na inicialização, para garantir que seus arquivos estejam ok. Atualizações e instalações podem substituí-las ou criar novas que não tenham a diretiva UGROUPS=
.
Desabilitando o usuário root
Uma vez que tudo esteja configurado e testado, você deve desativar o usuário root:
$ sudo passwd -l root
Esse é um L minúsculo, como em LOCK.
Em seguida, você deve definir ou alterar PermitRootLogin no
no seu arquivo /etc/ssh/sshd_config
. Isso é útil mesmo se você bloquear a conta root, caso alguém a habilite no futuro. O sudo su -
continuará funcionando mesmo se você definir isso, veja abaixo, então não há motivo para não configurá-lo.
Se você decidir não bloquear a conta root, isso não é o ideal, já que qualquer pessoa pode acessar o console de texto / X / GNOME como root
e quando coisas ruins acontecem (o console permanece logado ou você acidentalmente apaga um monte de arquivos do sistema operacional [pergunte-me como eu sei], melhor para bloquear a conta.
Executando como root por períodos prolongados
Às vezes, como o software instala, é necessário executar muitos comandos como root
e não é desejável ter que prefixar cada um com sudo
. Você tem duas opções neste caso:
- Altere temporariamente para a conta
root
:$ sudo su -
Esse comando fornecerá o mesmo shell de comando como se você tivesse efetuado login na conta como raiz. - Desbloqueie a conta root:
$ sudo passwd root
Isso permitirá que você defina uma senha e desbloqueie a conta; no entanto, não é temporário e você deve se lembrar de bloquear a conta de usuário depois de terminar.