Os conceitos de conta de usuário e grupo são fundamentais para entender e implementar um servidor. Este capítulo fornecerá uma descrição geral destes conceitos e de como eles podem ser tratados no Conectiva Linux.
Uma conta de usuário é um conjunto de nome de acesso[1] mais uma senha que possibilitam que o usuário acesse a sua área do sistema. Sendo assim, uma mesma pessoa pode possuir várias contas, basta que sejam criadas com nomes de acesso diferentes.
Basicamente, existem dois tipos de contas: a conta do usuário comum, que utiliza o sistema e suas ferramentas, e a conta de superusuário ou conta de root, onde é possível realizar as configurações do sistema. A senha de root é muito importante, pois algumas configurações só são possíveis tendo a mesma em mãos.
Por não possuir restrições de segurança, a conta de root só deve ser usada para manutenções no sistema e de preferência o menor tempo possível. Para evitar permissões desnecessárias no sistema deve-se usar uma conta normal de usuário em operações comuns. Se um arquivo for executado pelo usuário root e este contiver comandos ou códigos que causem danos ao sistema, estes danos poderão ser irreparáveis.
Um grupo é basicamente um conjunto de usuários. Geralmente ele é criado quando se deseja que usuários tenham permissão restrita a arquivos em comum. Isso é útil para garantir privacidade e segurança dos dados. Mais detalhes sobre grupos serão explicados ao longo do capítulo.
O arquivo /etc/passwd fornece muitas informações. Veja o exemplo abaixo. Cada linha no arquivo irá mostrar um usuário:
Podemos notar que esta linha está dividida em campos, onde cada um é separado por um : (dois pontos). Cada um deles está explicado a seguir:
usuario: login do usuário, ou seja, o nome de acesso para a conta do usuário no sistema. Note que alguns caracteres não são aceitos, como o * e $, pois são caracteres especiais. Observe também que as letras maiúscula e minúscula são tratadas de modo diferente, e portanto usuario é um usuário e Usuario será outro.
x: o sinal "x" indica que a senha do usuário está criptografada no arquivo /etc/shadow, se este arquivo estiver ativo. Se estivesse com o sinal de "*", a conta estaria desabilitada, e se estivesse sem nada (::), a conta não teria senha.
1001: UID (User Identification), que indica o número de identificação do usuário.
100: GID (Group Identification), que indica o número de identificação do grupo do usuário.
Usuario: comentários do usuário como nome e telefone.
/home/usuario: indica o diretório de trabalho do usuário (ou diretório home).
/bin/bash: shell do usuário, ou seja, o programa que irá interpretar os comandos que o usuário executar.
Durante a instalação do Conectiva Linux é interessante observar que alguns grupos e usuários são criados como padrão do sistema. Uma das primeiras contas existentes no Linux é a conta de superusuário, cujo nome de acesso é root e a senha é digitada durante a instalação. A maioria das distribuições permite também que outros usuários comuns sejam criados durante o seu processo de instalação.
O arquivo em que você pode ver todos os usuários é o /etc/passwd. Portanto, todos os usuários que não foram criados por você durante ou depois a instalação são aqueles usuários que são criados automaticamente pelo sistema.
Do mesmo modo, os grupos preexistentes estão no arquivo /etc/group. Como você pode notar, a maioria dos grupos que estão presentes neste arquivo servem para o controle do sistema, e somente o superusuário pode modificar suas permissões e incluir/retirar usuários destes grupos.
Existem várias formas de criar e manter usuários em um sistema. Primeiramente, será mostrado como tratar de usuários e em seguida como manipular grupos. É importante lembrar sempre de que, para executar estas atividades, você deve estar acessando o sistema como superusuário. Será mostrado como executar estas atividades através do aplicativo Linuxconf.
Para visualizar os usuários do sistema, acesse o menu Configuração -> Usuários -> Normal -> Contas de usuários do Linuxconf. Os detalhes mais gerais podem ser vistos nesta primeira tela, e para verificar mais detalhes ou editar uma conta, basta clicar sobre o nome do usuário. Se você deseja adicionar uma conta, clique em Adicionar. Em ambos os casos será mostrada uma tela conforme a Figura 3-1.
Esta tela (aba Informações Básicas) é de preenchimento obrigatório, sendo que alguns campos já vem predefinidos; as outras abas são opcionais. Lembre-se que para preencher a opção Grupos Suplementares, o grupo já deve estar cadastrado no sistema.
Após isto, clique no botão Aceitar e inclua a senha do usuário na janela que surgir, confirmando-a em seguida. Se desejar mudar a senha de um usuário já existente, selecione o usuário e clique no botão Senha.
Dica: Para fazer com que um usuário tenha poderes de superusuário, edite a conta e selecione a aba Privilégios. Pode-se, por exemplo, fazer com que o usuário (comum) possa usar o Linuxconf. Portanto, tenha muito cuidado com esta opção. Lembre-se também de que o bit SUID deve estar habilitado.
O Linuxconf é interessante porque você pode incluir outras informações sobre os usuários, além de poder criar contas especiais, como por exemplo contas POP (e-mail), e alterar padrões definidos para contas de usuários, como por exemplo os shells dos usuários.
Uma forma alternativa de incluir usuários em um sistema é através da linha de comando. Para criar uma nova conta de usuário, o comando é o useradd. Portanto, para criar uma conta com o nome de acesso usuario como no exemplo, basta digitar o comando (como superusuário):
# useradd usuario |
E para criar uma senha, basta utilizar o comando passwd. A senha pode conter qualquer caractere e é desejável que ela tenha no mínimo 6 caracteres.
# passwd usuario |
Com isto, a nova conta estará criada. Uma linha será incluída no arquivo /etc/passwd com os dados do novo usuário, incluindo o seu diretório de trabalho (/home/usuario), sendo colocado o /bin/bash como o interpretador de comandos padrão, entre outros dados.
Do mesmo modo, para remover contas de usuários basta digitar o comando:
# userdel -r usuario |
Todos os dados do usuário serão apagados do arquivo /etc/passwd, inclusive o diretório de trabalho do usuário.
Do mesmo modo que acontece para usuários, a criação e manutenção de grupos é muito simples de se executar.
Para criar um grupo dirija-se ao menu Configuração -> Usuários -> Normal -> Definições de grupos. Similarmente aos usuários, serão mostrados os grupos pertencentes ao sistema. Para criar um grupo clique em Adicionar e para editar um grupo clique sobre ele. Nos dois casos será mostrada uma tela como a Figura 3-2.
A opção ID do grupo não precisa ser preenchida, pois o sistema fornece automaticamente este número. Os usuários do grupo devem ser colocados no campo Membros alternativos (opc.), separados por um espaço em branco.
As informações sobre os grupos são guardadas no arquivo /etc/group. É importante frisar que durante a criação de um usuário, paralelamente um grupo com o mesmo nome do usuário estará sendo criado. Por exemplo, ao criar o usuário usuario, você poderá observar no arquivo /etc/group que uma linha foi criada (Exemplo 3-2):
Os grupos dos usuários comuns (onde o próprio usuário é o dono principal) contém números de identificação acima de 500; isto é um padrão para o Conectiva Linux. Os dados escritos neste arquivo são semelhantes aos descritos no Exemplo 3-1, modificando apenas os dados dos usuários para os dados dos grupos.
Deve-se tomar cuidado com as permissões. Ao se criar um grupo, deve-se ter certeza de que todos os arquivos estão com as permissões corretas e todos os usuários estão com as permissões corretas de leitura, escrita e execução.
Através do modo texto o comando groupadd cria um novo grupo. Para remover um grupo basta executar o comando groupdel.
Existem dois modos de incluir usuários em um grupo pelo modo texto: através do comando usermod ou diretamente no arquivo /etc/group. Para incluir usuários em um grupo editando diretamente o arquivo:
superteste:x:504:usuario1,usuario2 |
Note, portanto, que os usuários usuario1 e usuario2 foram incluídos no grupo superteste. Para incluir mais usuários basta incluir uma vírgula no fim da linha e o nome do usuário a seguir. Agora o mesmo exemplo, utilizando o comando usermod:
# usermod -G superteste usuario1 |
O comando usermod[2] inclui apenas um usuário por comando. É possível colocar vários grupos, mas deve-se tomar cuidado pois isto apaga a configuração anterior.
Este tema é muito extenso e possui inúmeros detalhes e configurações. Para mais informações, consulte as páginas de manual [3] dos comandos citados, além da página de manual do comando gpasswd.
[1] |
Login. |
[2] |
User Modification. |
[3] |
man pages. |