Sistemas Operacionais Usuários e Grupos
Introdução O Linux foi desenvolvido desde o começo para trabalhar em rede. Por isso, ele possui suporte a usuários e grupos, que garantem uma organização e segurança ao sistema. Cada usuário possui uma identificação e uma senha, sem a qual não é possível acessar o sistema. Além disso, cada usuário deve fazer parte de pelo menos um grupo, o que vai lhe garantir acesso a determinados componentes do sistema de acordo com a determinação do administrador. Para você entender melhor, suponhamos que o administrador do sistema crie um grupo chamado "audio" e determine que somente os usuários que pertençam a esse grupo tenham acesso à placa de som. Sendo assim, se o administrador não definir você como integrante do grupo audio, você não poderá ouvir música ou qualquer tipo de som.
Introdução Seguindo essa idéia, existem diversos grupos num sistema GNU/Linux, cada um com seus privilégios de acesso a determinados componentes e funções do sistema, de forma que é possível definir facilmente os privilégios de cada usuário, apenas incluindo-o nos respectivos grupos. Nos sistemas GNU/Linux, as informações sobre usuários e grupos podem ser armazenadas de diversas formas, dependendo da necessidade e complexidade do sistema, número de usuários, etc. Entretanto, essas informações, por padrão, ficam armazenadas em arquivos de texto dentro do diretório /etc/.
/etc/passwd Nesse arquivo ficam armazenadas as informações sobre os usuários. Ele é constituído de diversas linhas, uma para cada usuário. Essas linhas contém diversos campos, a saber: Login de usuário; Password criptografado; UID: O UID (User Identity, ou identidade de usuário) é o número de identificação do usuário; GID: O GID (Group Identity, ou identidade do grupo) é o número de identificação do grupo padrão do usuário; Comentários; Diretório pessoal; Shell.
/etc/shadow O arquivo /etc/passwd contém informações sobre todos os usuários, inclusive as suas senhas criptografadas. Ele é legível por todos os usuários e, por isso, estas senhas podem ser facilmente descobertas por crackers. Para evitar isso e aumentar a segurança do sistema, adotaram o sistema de sombreamento de senhas, o shadow passwords. Quando o sistema de sombreamento de senhas está disponível, o campo password do arquivo /etc/passwd é substituído por um "x" e a senha do usuário é armazenada no arquivo /etc/shadow. Este arquivo só pode ser lido pelo usuário root, o administrador do sistema, o que dificulta muito a ação de usuários maliciosos, aumentando a segurança das senhas dos usuários.
/etc/shadow O arquivo /etc/shadow é organizado da mesma forma que o /etc/passwd: uma linha para cada usuário, divididas em campos, que são: Login de usuário; Password criptografado; Tempo de expiração da senha. Exemplo: private:$1$3zkvpbv6$z.t9d907rvyicxufy3wwk.:12643:0:99999:7:::
/etc/group Este arquivo armazena as informações sobre os grupos de usuários. O formato é similar ao do /etc/passwd e seus campos são: Nome do grupo; Password; GID; Grupos membros do grupo. Abaixo as informações sobre o grupo financeiro" no /etc/group. financeiro:x:104:aldo,renan,marcia,michelle
/etc/gshadow O arquivo /etc/gshadow possui as mesmas funções do arquivo /etc/shadow, mas dificilmente veremos senhas aqui. financeiro:!:: teste:!:: tux:!::
Manipulando contas de usuários Somente o administrador do sistema pode criar, excluir ou modificar os dados dos usuários do sistema. Os procedimentos para a criação de uma nova conta de usuário são os seguintes: Criar uma entrada para o usuário no arquivo /etc/passwd; Especificar uma senha; Especificar um Shell de login; Criar um diretório pessoal para o usuário; Colocar neste diretório pessoal arquivos úteis ao usuário.
Manipulando contas de usuários Existem dois comandos que podem ser utilizados para adicionar um usuário. useradd e adduser. A principal diferença entre os dois comandos é que o entre em um modo interativo que pede informações como: nome do usuário, grupo de trabalho, senha, etc. Com o comando adduser, essas informações devem ser fornecidas posteriormente. Observação Ao criarmos um usuário, o sistema automaticamente criar um grupo com o nome desse usuário. Isso ocorre pois não podemos ter usuários sem vínculo com algum grupo.
Comando useradd useradd [opções] [login] -d: Especifica qual o diretório pessoal do usuário. O padrão é /home/[login]; -e: Especifica a data a partir da qual a conta do usuário será removida automaticamente. Use-a para criar uma conta de usuário temporária. O formato da data é AAAA-MM-DD (anomês-dia); -g: Especifica o grupo inicial ao qual o novo usuário irá pertencer. Pode ser o nome do grupo ou então o número (GID). O padrão desse parâmetro é users, ou 100; -m: Cria o diretório pessoal, especificado no parâmetro -d, se ele não existir.
Comando adduser adduser [opções] [login] --group: Se usado juntamente com o parâmetro --system, é criado um grupo com o mesmo nome e GID do usuário criado. Se usado sem o parâmetro --system, é criado um grupo com o nome fornecido; --home: Especifica o diretório pessoal do usuário. O padrão é /home/[login]; --shell: Especifica o Shell a ser utilizado pelo usuário; --no-create-home: Não cria o diretório pessoal, se ele não existir; --quiet: Não mostra mensagens sobre o progresso do processo de criação do usuário;
Expirando uma conta de usuário Desabilitar uma conta de usuário é impedir o usuário de acessar o sistema. Diferente do que ocorre quando se excluir uma conta, ao desabilitá-la as informações do usuário não são perdidas, caso elas sejam necessárias ou se deseje reabilitar a conta posteriormente. A melhor maneira de desabilitar uma conta de usuário é fazendo a sua conta expirar. Para isso, edite o arquivo /etc/shadow, procure pela linha que contém as informações da conta que você deseja desabilitar, vá no terceiro campo (delimitado por dois pontos), correspondente à data em que a senha foi modificada, e copie esse número subtraído de um para o oitavo campo.
Expirando uma conta de usuário Veja nesse exemplo, como expirar a senha do usuário "lanux": lanux:$1$etxjlnvq$klif2utvj5/lioh:12118:0:99999:7::: No terceiro campo encontramos o número 12118. Subtraímos 1 de 12118, obtendo-se 12117 e inserimos esse número no oitavo campo: lanux:$1$etxjlnvq$klif2utvj5/lioh:12118:0:99999:7::12117: Caso o usuário lanux do exemplo acima tente logar no sistema, receberá a seguinte mensagem: "Your account has expired; please contact your system administrator".
Comando - usermod Modifica uma conta de usuários existente. O comando usermod aceita quase os mesmos parâmetros do useradd. Sintaxe usermod [opções] usuário Parâmetros -L: trava a senha, desabilitando a conta -U: Destrava a senha do usuário, habilitando que ele possa novamente efetuar login no sistema.
Comandos userdel / deluser Exclui uma conta de usuário. Sintaxe userdel [opções] usuário Parâmetros -r: exclui o diretório do usuário -f: força a exclusão da conta do usuário, mesmo estando logado Uma conta de usuário também pode ser excluída com o comando deluser. Similar ao adduser, esse comando faz a exclusão de um usuário em modo interativo.
Comandos addgroup / groupadd Possuem a finalidade de adicionar um novo grupo ao sistema. No comando addgroup, uma mensagem informando o GID do grupo é retornada após a finalização do comando. Sintaxe addgroup <nomegrupo> groupadd <nomegrupo>
Comando groupmod Modifica parâmetros de um grupo existente. Sintaxe groupmod [opções] nomegruponovo grupoantigo Parâmetros -n nome: altera o nome do grupo -g: altera a GID do grupo -0: quando usado com g, permite repetir o número de GID
Comando groupdel / delgroup Excluem grupos do sistema. Sintaxe groupdel nomegrupo delgroup nomegrupo Observação O comando delgroup assim como o adduser leva o usuário a um modo interativo.
Comando passwd Altera ou define a senha de um usuário existente no sistema. Sintaxe passwd [opções] usuario Observação Caso o comando seja utilizado sem usuário, será alterada a senha do usuário logado na seção
Comando gpasswd Altera ou define a senha para um grupo do sistema. Sintaxe gpasswd [opções] nomegrupo
Comando pwconv / pwunconv pwconv Habilita o sombreamento de senhas do arquivo /etc/passwd. Quando o sombreamento está ativado, as senhas dos usuários são armazenadas no arquivo /etc/shadow. Esse arquivo somente o usuário administrador do sistema tem acesso. pwunconv Desabilita o sombreamento de senhas do arquivo /etc/group.
Comando grpconv / grpunconv grpconv Habilita o sombreamento de senhas do arquivo /etc/group. Quando o sombreamento está ativado, as senhas dos grupos são armazenadas no arquivo /etc/gshadow. Esse arquivo somente o usuário administrador do sistema tem acesso. grpunconv Desabilita o sombreamento de senhas do arquivo /etc/group.