Hugo Cisneiros (Eitch), hugo arroba devin ponto com ponto br
Versão 4.0, 2006

The Linux Manual

4.3. Manipulação de usuários

Índice

4.3.1. Tornando um usuário comum em root
4.3.2. Grupos de usuários

Como você já deve saber, o Linux é um sistema multi-usuário. Então é claro que não só pode existir um usuário usando o sistema. Uma primeira coisa que possamos dizer é que o Linux não pode de alguma maneira ser usada sem estar sendo um usuário. O usuário root é o administrador do sistema e é ele quem você vai usar primeiro para criar outros usuários depois (a não ser que você tenha criado um usuário comum durante a instalação do seu Linux).

Antes de mais nada, fique sabendo que o root é um usuário especial, ele pode fazer TUDO em seu sistema, não importa o que acontecer, ele faz, ao contrário dos usuários comuns, que têm restrições. Se você já instalou algum Linux, você verá que a primeira coisa que você irá fazer antes de usar o sistema é se logar como root, ou seja, preencher aquele campo login: com o usuário root. Mas aí por alguma razão você quer mudar de usuário, ou criar outro (algumas distribuições já pedem pra criar na instalação), ou qualquer coisa do tipo, então você se pergunta: "Como?"

Há um comando específico para isto. Este comando é o adduser ou useradd. Dependendo da distribuição, o comando adduser vai ser apenas um comando igual ao useradd, ou então um script interativo que irá lhe fazer perguntas, você irá respondendo e então o script criará um usuário no sistema para você.

No caso do comando adduser ser um comando mesmo, você poderá utilizar da seguinte forma:

# adduser hugo
# passwd hugo

Isso irá respectivamente criar um usuário padrão chamado hugo e depois o comando passwd definirá uma senha para este usuário recém-criado. Você pode especificar outros parâmetros para o usuário, como no comando a seguir:

# adduser hugo -d /var/usuarios/hugo -s /dev/null

Com estes parâmetros, especifiquei que o usuário hugo terá como diretório home o /var/usuarios/hugo e como shell o /dev/null (ou seja, não terá shell). Sem estes parâmetros, o diretório home seria /home/hugo e o shell seria /bin/bash.

Vamos entender agora como este comando funciona, pois é uma coisa essencial que todos deveriam saber em relação ao sistema Linux. Cada um desses programas escrevem o usuário no arquivo de configuração do Linux referente aos usuários do sistema. Este arquivo é o /etc/passwd. Cada linha deste arquivo é um usuário cadastrado no sistema. Com as informações que vou lhe dar aqui, você pode muito bem criar uma conta sem usar estes programas/scripts citados acima.

O arquivo /etc/passwd é formado por linhas onde cada linha é um usuário, como falei acima, então vamos aprender a montar cada linha desta. Vou pegar um exemplo para vocês:

hugo:x:1001:100:Hugo Cisneiros:/home/hugo:/bin/bash

Exemplo 4.5. Exemplo de linha do /etc/passwd

Vamos dividir esta linha em campos, onde cada um é separado por : (dois pontos). Olhe só:

Campo Descrição
hugo Login do Usuário, aqui você pode colocar o nome que quiser com até 8 caracteres.
x Aqui diz que a senha está no arquivo /etc/shadow. Se estivesse *, a conta estaria desabilitada e se estivesse sem nada (::), a conta não teria uma senha.
1001 UID (User IDentification), o número de identificação do usuário.
100 GID (Group IDentification), o número de identificação do grupo do usuário.
Hugo Cisneiros Comentários sobre o usuário, como por exemplo nome, localização, telefone, fofocas da vida do cara, etc.
/home/hugo O diretório HOME do usuário, ou seja, o diretório pertencente a ele. Geralmente estes diretórios estão sempre no /home.
/bin/bash Shell do usuário, ou seja, o programa que irá interpretar os comandos que o usuário executar.

Tabela 4.3. Campos de Usuário no /etc/passwd

[Nota] Nota

O /etc/shadow é um arquivo que contém a senha do usuário criptografada, se alguém tiver posse dela, esta pessoa pode muito bem comparar as senhas com uma lista de palavras e pode descobrir as senhas dos usuários. Felizmente este arquivo está muito bem protegido pelo sistema :) Só o root pode vê-lo e editá-lo!

Bem, legal, aprendi como adicionar um usuário, mas como faço para removê-lo? Simples, você pode apagar a linha referente a ele no /etc/passwd e no /etc/shadow e os seus arquivos, ou simplesmente digitar o seguinte comando:

# userdel usuario

Combine com a opção -r para remover junto o diretório HOME do usuário. Lembre-se dos backups :P

4.3.1. Tornando um usuário comum em root

Ahhhhh? Você quer mais? O quê? Quer deixar um usuário normal como se fosse root? Então vamos lá que não temos nada a perder! O root possui o UID e o GID igual à 0 (zero) e um usuário comum não. Se nós forçamos a mudança do UID e GID de um usuário para 0, ele ficaria como se fosse o root! Por exemplo, eu tenho a linha do usuário no /etc/passwd e de:

hugo:x:1001:100:Hugo Cisneiros:/home/hugo:/bin/bash

Para:

hugo:x:0:0:Hugo Cisneiros:/home/hugo:/bin/bash
       ^ ^

Pronto, o usuário hugo vai ser também o root do sistema, o administrador do sistema, o deus do sistema, etc.

[Atenção] Aviso

Não é muito bom ficar usando o usuário root. Este usuário é somente para a administração do sistema, então eu recomendo à você a usar sempre um usuário normal: ser da plebe :) E se for precisar usar o root, basta apenas logar como ele ou utilizar o comando:

$ su -

E depois que você fornecer a senha de root, se tornará o próprio deus! A razão para este tipo de prática é que a chance de você fazer besteira ou executar algum programa que faz besteira pra você diminui bastante. Além disso, se algum programa tiver algum bug, o risco dele ser explorado para estragar seu sistema diminui bastante quando não se usa root. Por isso vários serviços do Linux rodam com usuários específicos.

4.3.2. Grupos de usuários

Outro arquivo que tem muito haver com os usuários no Linux é o /etc/group. Ele contém as definições de cada grupo, como por exemplo: seus nomes, GIDs e usuários adicionais que pertencem à ele. Você adicionando uma linha neste arquivo estará criando um novo grupo. Vamos criar aqui um novo grupo no /etc/group:

metal:x:666:hugo,schneider,eitch

Exemplo 4.6. Exemplo de linha do /etc/group

Adicionando esta linha acima no arquivo /etc/group criará um novo grupo: com o nome metal, o GID 666 e como usuários adicionais pertencentes à ele: hugo, schneider e eitch. Fácil não?

Não? Então se quiser você também pode utilizar o comando groupadd da seguinte forma:

# groupadd -g 666 metal

Isso irá criar o grupo metal com o número GID 666. Para adicionar os usuários, você terá que editar o arquivo e adicionar lá na linha criada :-)