Skip to content

Instantly share code, notes, and snippets.

@hidenowt
Created May 18, 2011 03:29
Show Gist options
  • Save hidenowt/977944 to your computer and use it in GitHub Desktop.
Save hidenowt/977944 to your computer and use it in GitHub Desktop.
As contas e grupos de usuário em sistemas unix
As contas de usuário
Um arquivo em particular no diretório de configuração do sistema contém a lista de usuários do sistema: /etc/passwd. Ao contrário do que o nome sugere, ele geralmente não contêm senhas de usuários, pois eles são, na maioria dos casos, armazenados usando o formato de sombras em um arquivo separado /etc/shadow por razões de segurança. Ele, no entanto, vem com alguns bits de informações para cada usuário. Uma linha do arquivo passwd que representa um usuário, a seguinte sintaxe deve ser respeitado:
Name:password:ID:group ID:comment:home directory:login shell
Na prática, o bit senha é substituído por "x" indicando que a senha real é armazenado no arquivo /etc/shadow.
Adicionando uma nova conta de usuário pode ser tão simples quanto adicionar uma linha ao arquivo /etc/passwd. Basta utilizar o useradd.
A sintaxe mais básica para este comando é useradd usuário. Isso cria uma nova conta de usuário com as configurações padrão (que pode ser personalizada), um diretório home para o usuário localizado em /home, sem prazo de validade, o grupo padrão para os usuários, e Bash como um shell de login.
Se você adicionar uma conta destinada a ser executado um serviço como por exemplo: Nginx, é recomendável que você não conceder ao usuário acesso a conta shell, conseqüentemente, você deve se certificar de que o shell de login é definida como nologin (geralmente encontrado em /sbin/nologin). O comando seria então:
useradd --shell /sbin/nologin nginx
Você também pode definir o local do diretório home para a pasta onde você instalou o Nginx:
useradd --shell /sbin/nologin --home-dir /usr/local/nginx nginx
O nginx à direita indica o nome da conta do usuário a ser criado.
Se você deseja editar alguns destes parâmetros após o processo de criação da conta é completo, você pode usar o comando usermod. Ele permite que você mude o nome da conta, alterar a senha da conta, mova o diretório home, juntamente com o seu conteúdo para outro local, e muito mais. Eventualmente, você pode querer excluir uma conta de usuário. Isto é feito através do comando userdel simples basta usar userdell usuário. A opção -r permite que você apague o diretório home junto com a conta de usuário.
Gestão do Grupo
Além de contas de usuários, sistemas baseados em Unix fornecer uma ainda mais avançados recursos de gerenciamento de usuários o mecanismo de grupos. O objetivo do grupo é ter suas permissões de acesso próprio em arquivos e diretórios e todos os usuários pertencentes ao grupo, então, herdam as permissões do grupo. Uma conta de usuário tem que pertencer a pelo menos um grupo de usuário do grupo primário, embora possa também pertencer a grupos secundários.
Na prática, a lista de grupos no sistema são armazenadas no arquivo /etc/group. Cada linha do arquivo representa um grupo, respeitando a seguinte sintaxe:
Group name:password:group ID:user list
A senha do grupo é raramente usada, em vez disso ele é substituído por 'x' para indicar que o grupo não tem senha. No final de cada linha, você encontrará a lista de usuários pertencentes ao grupo.
Novamente, se você deseja criar um novo grupo em seu sistema, você tem duas opções: ou adicionar uma nova linha no arquivo /etc/group, ou usa o comando groupadd. Sua sintaxe é simples groupadd groupname.
Semelhante ao sistema de gerenciamento de usuários, você também vai encontrar os comandos groupmod e groupdel, respectivamente, para editar configurações do grupo e excluir um grupo. Mais importante, como adicionar um usuário a um grupo? É feito editando o arquivo /etc/group adicionar o nome de usuário no final da linha correspondente ao grupo que você deseja adicionar o usuário, ou usando o seguinte comando:
usermod --append --groups groupname username
Você pode especificar um ou mais grupos. Ignorando a opção --append teria o efeito de substituir a lista de grupo de usuário pelos grupos especificados. Eventualmente, o comando groups mostra a lista de grupos do usuário atual pertence.
@souzaems
Copy link

Muito boa essas informações

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment