O su, o sux e o sudo

O Linux nasceu como um sistema multiusuário, mantendo a tradição dos sistemas Unix. Ele oferece um sistema de permissões bastante simples, porém ao mesmo tempo bastante efetivo, atendendo tanto a desktops domésticos, usados
por apenas duas ou três pessoas, quanto a servidores com centenas de usuários.

No Linux, o root é o único que tem acesso a todos os arquivos e configurações do sistema. Os usuários normais têm, por padrão, acesso apenas a seus arquivos dentro do diretório /home e alguns outros arquivos específicos. Em
um desktop, a ideia básica é que você use um login normal de usuário para rodar programas e executar as tarefas do dia a dia e logue-se como root quando precisar instalar programas ou alterar a configuração do sistema.

Todos os programas salvam suas configurações dentro de pastas ocultas, dentro do diretório home, como a “.gnome2”, que armazena a maior parte das configurações relacionadas ao GNOME e a “.kde”, que guarda as configurações do
KDE e dos aplicativos baseados nele. Cada usuário tem suas próprias pastas de configuração e pode alterar apenas seus próprios arquivos, o que evita confusão em PCs ou servidores compartilhados entre vários usuários. O máximo que poderia acontecer seria
um usuário deletar seus próprios arquivos, ou bagunçar suas próprias configurações.

Em qualquer distribuição, você pode se logar como root usando o comando “su” no terminal, fornecendo a senha de root. De uma forma geral, recomenda-se usá-lo com o parâmetro “-“, que atualiza as variáveis de
ambiente:

$ su -

O símbolo do terminal muda de um “$” para um “#”, indicando que, a partir daí, todos os comandos digitados nesse terminal específico serão executados como root.

Um problema comum é você não conseguir rodar aplicativos gráficos depois de logado como root, recebendo um “konqueror: cannot connect to X server ” ou um “Error: no display specified”. Isso acontece por que, na maioria das
distribuições, as permissões do X não são atualizadas, fazendo com que, por paradoxal que possa parecer, o root não tenha permissão para usar o ambiente gráfico. Isso acaba sendo um grande empecilho, já que você não pode usar editores de texto como o
gedit ou o kwrite para editar arquivos de configuração, por exemplo.

A solução mais simples é instalar o pacote “sux” e passar a usar o comando no lugar do su. O “sux” atualiza as permissões do ambiente gráfico, solucionando o problema. Basta passar a usá-lo no lugar do “su” quando quiser
rodar aplicativos gráficos:

$ sux

Outra opção é rodar os programas gráficos usando o “gksudo” (no GNOME) ou o “kdesu” (no KDE), seguidos do comando desejado, como em:

$ gksudo gedit

ou:

$ kdesu konqueror /etc

Assim como no caso do sux, eles ajustam as permissões do X automaticamente. Uma forma prática de usá-los, é rodar os comandos usando o “Alt+F2” que abre a janela do “Executar comando”, onde você pode rodar o comando
diretamente, sem precisar primeiro abrir um terminal.

Em algumas distribuições (como no caso do OpenSUSE), o gksudo é substituído pelo “gnomesu“, mas a função é a mesma.

Continuando, as distribuições atuais têm adotado cada vez mais o uso do “sudo” como uma forma de facilitar o uso do sistema, permitindo que você execute aplicativos como root quando precisar.

Muita gente associa o uso do sudo ao Ubuntu, mas ele, na verdade, começou a ser usado em larga escala um pouco antes, no Knoppix e em outros live-CDs baseados nele, como o Kurumin. No caso dos live-CDs, o sudo é usado como
um facilitador, para que o sistema permita a execução de comandos como root sem a necessidade de definir uma senha default para o root.

Quando você precisa abrir uma janela do gerenciador de arquivos como root, para recuperar arquivos dentro de uma partição do HD, por exemplo, você precisa apenas chamá-lo colocando um “sudo” antes do comando, como em:

$ sudo konqueror /mnt/sda2

O sudo pode ser usado até mesmo para alterar a senha de root, permitindo que você defina uma senha para o live-CD, mesmo sem saber a senha anterior:

$ sudo passwd

O Ubuntu (depois de instalado) usa uma abordagem mais conservadora, confirmando sua senha de usuário antes de executar o comando. Essa é uma precaução básica de segurança, que evita que alguém possa alterar a senha de root e
assumir o controle do seu PC enquanto você estiver tomando um cafezinho, por exemplo.

Em qualquer um dos casos, a configuração do sudo vai no arquivo “/etc/sudoers“, onde são especificados os usuários que poderão usar o comando. No Ubuntu, por exemplo, é usada a seguinte configuração:

%admin ALL=(ALL) ALL

O “%admin” indica que a regra não se aplica a um usuário específico, mas sim a todos os usuários que fazem parte do grupo “admin”. Por default, apenas o usuário criado durante a instalação faz parte do grupo e somante ele
pode usar o sudo, mas você pode criar outros usuários administrativos posteriormente simplesmente adicionando-os ao grupo, como em:

# addgroup gdh admin

Devido ao “ALL=(ALL) ALL”, o sistema permite que o sudo seja usado para executar qualquer comando (com algumas poucas exceções), mas apenas depois de confirmada a senha do usuário.

Para poder executar comandos sem precisar confirmar a senha (como ao rodar usando o live-CD), você precisaria apenas alterar a linha, substituindo o “(ALL)” por um “NOPASSWD:”, como em:

%admin ALL=NOPASSWD: ALL

No caso do Ubuntu, o arquivo vem com a linha “%sudo ALL=NOPASSWD: ALL” comentada, que tem um efeito semelhante, permitindo que os usuários incluídos no grupo “sudo” possam usar o sudo sem senha.

Por ser um arquivo essencial dentro do sistema de permissões, o “/etc/sudoers” é um arquivo extremamente sensível. Qualquer erro dentro da configuração, ou qualquer alteração nas permissões do arquivo (que devem ser,
obrigatoriamente, “0440”), fazem com que o sudo deixe de funcionar, bloqueando parcialmente o sistema até que o problema seja resolvido.

É por isso que é recomendado que você edite o arquivo usando o comando “visudo”, que não permite que você salve o arquivo caso existam erros na configuração. O grande problema é que ele é complicado de usar, o que faz com
que muitos dispensem o conselho e usem outros editores de texto. Não existe nada de errado nisso, desde que você cheque e recheque a configuração antes de salvar.

Outra dica é que você sempre destrave a conta de root usando o “sudo passwd” antes de tentar editar o arquivo. Isso garante que você continue conseguindo se logar como root no sistema caso o sudo fique travado por um erro na
configuração do arquivo.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X