Artigos

27 de julho de 2016

Administração de usuários no FreeBSD

Mais artigos de »
Escrito por: Leonardo Souza
Tags:

Administração de usuários no FreeBSD

O FreeBSD é um sistema multiusuário, ou seja, permite o uso por vários usuários simultaneamente. Isso significa que embora apenas um usuários pode sentar na frente do computador e utilizá-lo fisicamente, é plenamente possível que vários usuários o utilizem por meio da rede ao mesmo tempo. Sendo assim, uma das primeiras tarefas do administrador do sistema, após sua instalação, é a criação dos usuários que irão utilizá-lo. A administração de usuários no FreeBSD é o foco deste artigo.

Dessa forma, para que possa utilizar o sistema, cada usuário precisa possuir sua própria conta de usuário, que lhe fornecerá as credenciais necessárias para utilizá-lo (na maioria das vezes, utiliza-se usuário e senha). Embora seja possível determinar contas sem senha, do ponto de vista de segurança este artifício não é recomendado, pois pode tornar o sistema totalmente vulnerável e inseguro.




Leitura complementar

Para melhor compreender este artigo e tirar melhor proveito do conteúdo, indico a leitura de outros artigos, que associados a este trarão um melhor entendimento dos principais termos e conceitos abordados aqui. São eles:

Tipos de contas do FreeBSD

Para compreender a administração de usuários no FreeBSD é preciso abordar os tipos de contas do sistema. Neste sentido, o FreeBSD possui basicamente três tipos de contas: contas de sistema, contas de usuário e conta de superusuário:

Conta de superusuário

A conta de superusuário, normalmente chamado de root, é utilizado para gerir e administrar o sistema, limitando e atribuindo privilégios aos recursos do sistema. Sendo assim, não deve ser utilizado para tarefas cotidianas, como navegar na internet, enviar e receber emails, etc.

Esta recomendação deve ser seguida, pois ao contrário de outras contas de usuário, esta conta consegue operar o sistema sem limitações, e seu uso indevido pode resultar em grandes desastres no sistema. Por outro lado, contas de usuários são incapazes de causar problemas no sistema operacional por engano, por isso seu uso é o mais indicado, tornando-o superusuário apenas quando um comando requer privilégios extras.

Embora seja possível realizar login no sistema com a conta de root, esta não é uma boa prática de segurança, por isso é altamente desaconselhado. Por este motivo o uso mais comum do superusuário é por meio do utilitário sudo. Para realizar a administração de usuários no FreeBSD é preciso possuir privilégios de superusuário.

Contas do sistema: são usadas pelo sistema, para executar serviços específicos, como por exemplo, DNS, mail e servidores web. Embora chamadas de contas do sistema, elas possuem restrições, ou seja, não possuem poderes de superusuários, não podendo assim, executar qualquer tipo de tarefa com poderes de administrador. Isso torna o sistema um pouco mais seguro. Exemplos de contas do sistema: daemon, operator, bind, etc.

Nobody: é uma conta do sistema com privilégios genéricos. Porém, quanto mais serviços estiverem utilizando este usuário para acessar o sistema, mais arquivos e processos irão utilizá-lo em consequência e serão associados a ele, e, portanto mais privilégios serão atribuídos ao ele.

Contas de usuários: são as contas utilizadas pelas pessoas reais e não por programas, ou seja, são as contas utilizadas para realizar login no sistema e utilizar os recursos dele. Cada usuário que acessa o sistema, deve ter sua própria conta de usuário único. Dessa forma o administrador consegue saber quem faz o que e consegue limitar recursos garantindo desta forma a segurança e disponibilidade do sistema.

Sendo assim, cada usuário consegue configurar seu próprio ambiente de acordo com sua necessidade, isso inclui o Shell padrão, editor, teclas e configurações de idioma.  Isso garante um ambiente personalizado para cada usuário.

Características de cada conta

Cada conta de usuários em um sistema FreeBSD possui determinadas informações associadas a ela:

Nome de usuário: este é o nome utilizado no momento do login. Cada usuário do sistema possui um nome único. Existem algumas recomendações para criação destes nomes, elas devem ser seguidas para manter a compatibilidade com as aplicações, entre elas podemos citar: devem possuir no máximo oito caracteres, todos eles em letra minúsculas, por exemplo.

Senha: palavra que será utilizada em conjunto com o nome de usuário para permitir o login no sistema.

ID do usuário (UID): número utilizado para identificação do usuário no sistema FreeBSD. Na maioria das vezes este valor será gerado de forma automática, porém é possível escolher um no momento da criação do usuário. Recomenda-se utilizar UIDs inferiores a 65535, já que valores superiores a este pode causar problemas de compatibilidade com alguns softwares.

ID de grupo (GID): número usado para identificar o grupo primário que o usuário pertertence. Através dos grupos é possível controlar o acesso a recursos utilizando um usuário GID ao invés de seu UID, fazendo com que todos os usuários que fazem parte do grupo em questão, possuam permissão ou não para determinado recurso.

Classe de login: classes de login são uma extensão para os recursos de grupos que permitem uma maior flexibilidade para adaptar o sistema para diferentes usuários. Veremos mais sobre este assunto em outro artigo.

Tempo de mudança de senha: no FreeBSD, por padrão, as senhas não expiram. Porém, é possível estipular um determinado período de expiração, fazendo com que alguns ou todos os usuários alterem suas senhas ao fim deste período.

Tempo de expiração de conta: por padrão, no FreeBSD, as contas não expiram. No entanto, é possível configurar algumas contas para que tenham data de validade, após este período as contas não poderão ser utilizadas para realizar login no sistema.

Nome completo do usuário: este nome serve como identificação do usuário no FreeBSD, porém não referencia necessariamente o nome real do usuário.

Diretório Home: é o caminho completo para um diretório do sistema, que será o ponto de partida do usuário após realizar o login. Por este motivo é utilizado na maioria das vezes como diretório pessoal de cada usuário. Uma convenção comum é colocar todos os diretórios home dos usuários em /home/usuario ou /usr/home/usuario.

Shell do usuário: fornece o ambiente padrão do usuário, que permite interagir com o sistema. Existem vários tipos diferentes e cada usuário poderá ter o seu preferido devidamente configurado.

Gerenciamento de contas

Para realizar o gerenciamento das contas de usuários podemos utilizar vários comandos diferentes. Os mais comuns podem ser vistos na tabela abaixo.

Administração de usuários no FreeBSD

Veremos agora cada uma destas opções:

Adicionando usuários

Para adicionar usuários utilizamos o comando adduser, como mostramos na tabela anterior. Esta opção permite definir várias propriedades da conta, como nome completo, shell padrão do usuário, diretório home, etc.

Para utilizar o comando digite adduser.

# adduser

Administração de usuários no FreeBSD

Várias perguntas serão feitas, responda cada uma delas. Depois de responder todas elas, será perguntado se deseja confirmar os dados informados ou não.

adduser2

Em caso positivo, os dados serão salvos, senão as informações não serão armazenadas no banco de dados de usuários.

Remover usuário

Para remover um usuário do sistema utilizamos o comando rmuser. Este comando removerá totalmente este usuário e executará as seguintes etapas em ordem cronológica:

  1. remove entradas crontab, relativas a este usuário, se existir.
  2. remove qualquer tarefa criada com o comando at e relativa a este usuário, caso existam.
  3. mata todos os processos pertencentes ao usuário.
  4. remove o usuário do arquivo de senhas do sistema.
  5. opcionalmente remove o diretório home do usuário, se ele possuir um.
  6. remove os arquivos de correio pertencentes ao usuário em /var/mail.
  7. remove todos os arquivos temporários relativos ao usuário e que estão em /tmp.
  8. remove o nome de usuário de todos os grupos a que pertence no arquivo /etc/group. Se um grupo estiver vazio e o nome do grupo é o mesmo que o nome de usuário, então o grupo será removido.

Para remover o usuário digite o comando rmuser seguido do nome de usuário.

rmuser

Durante a exclusão é possível definir a exclusão do diretório home do usuário. Caso deseje excluí-lo também confirme com a tecla “y”.

Alterando dados de Usuários

As informações definidas no momento da criação do usuário não são imutáveis, ou seja, elas podem ser alteradas de acordo com a necessidade. Para realizar esta alteração utilizamos o comando chpass, que nos apresenta um ambiente de edição de texto, onde é possível realizar as alterações básicas de uma conta de usuário.

Quando o comando chpass é executado o sistema utiliza o editor padrão do sistema para abrir o ambiente de edição de texto. Para saber qual o editor de textos está definido como padrão no sistema para este usuário utilize o comando echo $EDITOR.

EDITOR

Este comando lê o valor da variável EDITOR e mostra seu conteúdo na tela. Neste exemplo, o editor padrão do sistema é o “vi”.

Cada usuário pode  realizar alterações específicas sobre sua conta.Vamos executar o comando com o usuário leo, ele verá algumas informações limitadas e que poderão ser alteradas.

chpass-$

Perceba que entre os dados estão informações pessoais, shell do usuário,etc.

Por outro lado, o usuário root do sistema pode alterar não só a sua conta, como também, dados de outras contas. Para isso basta digitar o comando chpass seguido do nome de usuário que pretende alterar.

# chpass leo

chpass-root

Veja que o ambiente de edição possui algumas opções a mais que a anterior, isso ocorre porque o usuário root possui privilégios muito maiores em relação a um usuário comum do sistema.

Alterando senhas de usuários

Qualquer usuário do sistema consegue alterar sua senha por meio do comando passwd. Para isso basta digitar o comando sem parâmetro algum.

$ passwd

passwd-user

Para concluir a operação será solicitada a senha antiga do usuário e só após a confirmação será possível inserir  a nova. O mesmo não ocorre com o usuário root, este não precisa inserir a senha anterior, veja na imagem abaixo.

senha-root

O usuário root, como administrador do sistema, pode alterar senhas de usuários. Para isso basta digitar o comando passwd seguido do nome do usuário.

# passwd leo

alterando-senha

Depois de confirmar a nova senha ela já estará atualizada no banco de dados de usuários.

Gerenciando Grupos

Administração de usuários no FreeBSD envolve diretamente o gerenciamento de grupos. Podemos definir um grupo como uma lista de usuários, que possui um nome próprio e um identificador único no sistema, chamado de GID. O FreeBSD utiliza o UID de um processo e a lista de grupos a que ele pertence, para controlar o que este processo pode ou nao fazer, ou seja, ele é limitado as permissões que seus donos possuem no sistema.

A lista de grupos no sistema está listado no arquivo /etc/group. Este é um arquivo de texto simples, que possui uma estrutura composta por quatro campos dispostos da seguinte forma: o primeiro campo é o nome do grupo, o segundo possui a senha criptografada, o terceiro contem o código GID, e o quarto mostra os membros do grupo separados por vírgula. Este arquivo pode ser modificado pelo usuário root do sistema por meio de um editor de textos ou utilizando o utilitário pw.

Adicionando Grupos de usuarios

Para adicionar um novo grupo de usuários no sistema utilizamos o utilitário pw seguido do comando groupadd e o nome do grupo a ser criado.

# pw groupadd grupo

groupadd

Nneste exemplo estamos criando o grupo de nome administrativo. Vamos agora adicionar usuários a este grupo.

Adicionando usuários no grupo criado

Para inserir usuários no grupo já criado utilizamos o utilitário pw seguido do comando groupmod e o nome do grupo com o parâmetro –M.

# pw groupmod grupo –M usuario

adicionando_usuario

Desta forma, inserimos o usuário “leo” no grupo “administrativo”. Podemos listar o grupo e visualizar seus usuários.

Listando usuários do grupo

Para listar os usuários do grupo utilizamos o utilitário pw seguido do comando groupshow e o nome do grupo.

# pw groupshow grupo

listando_grupo

Perceba que na quarta coluna podemos visualizar a presença do usuário “leo” adicionado no comando anterior.

Considerações Finais

Este artigo apresentou a administração de usuários no FreeBSD, vimos que embora toda ela seja feita por meio do terminal, esta tarefa é muito simples de ser realizada. Os usuários familiarizados com o mundo GNU/Linux não terão dificuldades em entender e executar as tarefas, visto que realizam a maioria das tarefas administrativas do sistema em ambiente de texto.

Sem dúvidas, a administração de usuários no FreeBSD está entre as principais tarefas administrativas neste sistema. Um administrador de sistemas ou técnico de redes FreeBSD, precisa saber realizar estas configurações, afinal este é o tipo de tarefa corriqueira de qualquer sistema.



Sobre o Autor

Foto de perfil de Leonardo Souza
Leonardo Souza
Bacharel em Informática, pós graduado em Segurança de Redes de Computadores e analista de Segurança da Informação. Entusiasta de Segurança da Informação e usuário FreeBSD, porém sem xiismo.




0 Comments


Seja o Primeiro a Comentar!


You must be logged in to post a comment.