Gerenciando Grupos - Linux
No Linux, um usuário pode ser membro de diferentes grupos. Antes de tudo, cada usuário tem pelo menos um grupo principal. (Se um usuário não tiver um grupo principal, ele não poderá entrar no sistema). Normalmente, ao criar um usuário, opara ele é atribuído um grupo principal com o mesmo nome.
Além disso, o usuário pode pertencer a grupos adicionais. A diferença mais importante entre o grupo principal e outros grupos é que o grupo principal automaticamente se torna o grupo proprietário de qualquer novo arquivo criado pelo usuário.
Obtendo o Grupo
O identificador do grupo principal ou GID do usuário é armazenado no quarto campo do arquivo /etc/passwd
superuser1
programicio@Programicio:~$ sudo grep superuser1 /etc/passwd superuser1:x:1001:1001::/home/superuser1:/bin/sh
Aqui, vemos que o grupo do usuário é 1001
programicio@Programicio:~$ sudo grep superuser1 /etc/passwd | cut -d : -f 4 1001
O comando groups
root
programicio@Programicio:~$ groups root root : root
Como podemos ver, root
programicio@Programicio:~$ groups programicio adm cdrom sudo dip plugdev users lpadmin
Adicionando um Grupo com groupadd
O comando groupadd
groupadd [options] GROUP
O parâmetro obrigatório GROUP
: define o GID para o novo grupo.-g, --gid GID
: aplica uma senha para o novo grupo.-p, --password PASSWORD
: define a lista de usuários membros deste grupo.-U, --users USERS
Por exemplo, vamos criar o grupo developers:
sudo groupadd developers
Obtendo Grupos
Todos os grupos criados são armazenados no arquivo /etc/group
root:x:0: daemon:x:1: bin:x:2: sys:x:3: ................. programicio:x:1000: superuser1:x:1001: developers:x:1002:
Cada linha no arquivo descreve um grupo específico e é composta por quatro campos separados por dois pontos:
O primeiro campo representa o nome do grupo.
O segundo campo armazena a senha do grupo (o caractere
significa que a senha não é permitida para este grupo). Na maioria dos grupos, o campo de senha contém o símbolo!
, o que indica que a informação sobre a senha do grupo está armazenada no arquivox
. No entanto, na prática, senhas de grupos são raramente usadas, e em algumas distribuições Linux, o arquivo/etc/gshadow
nem sequer existe./etc/gshadow
O terceiro campo contém o identificador único do grupo ou GID.
O último campo contém os nomes dos membros do grupo (apenas para usuários para os quais este não é o grupo principal).
Quando um usuário cria um arquivo, seu grupo principal é automaticamente atribuído como grupo proprietário do arquivo. Isso significa que todos os membros de um grupo geralmente podem acessar o arquivo.
Por Que Usar uma Senha de Grupo?
Se um usuário quiser criar arquivos cujo grupo proprietário seja diferente do grupo principal, ele pode usar o comando newgrp
newgrp developers
developers
developers
Verificando a Existência de um Grupo
Podemos verificar a existência de um grupo usando o comando cat /etc/group | grep nome_do_grupo
programicio@Programicio:~$ cat /etc/group | grep developers developers:x:1002:
Aqui, vemos que o GID do grupo developers
1002
Adicionando um Usuário a um Grupo
Por exemplo, digamos que anteriormente criamos um usuário superuser1
sudo useradd superuser1
Vamos adicionar esse usuário ao grupo developers
programicio@Programicio:~$ sudo usermod -aG developers superuser1 programicio@Programicio:~$ id superuser1 uid=1001(superuser1) gid=1001(superuser1) groups=1001(superuser1),1002(developers)
Ao verificar o grupo developers
programicio@Programicio:~$ cat /etc/group | grep developers developers:x:1002:superuser1
Ao verificar o grupo developers
programicio@Programicio:~$ cat /etc/group | grep developers developers:x:1002:superuser1
Modificando um Grupo com groupmod
O comando groupmod
groupmod [options] GROUP
O parâmetro obrigatório GROUP
: adiciona os usuários especificados na opção-a, --append
ao grupo, sem remover os membros já existentes.-U
: altera o identificador do grupo para o GID especificado.-g, --gid GID
: muda o nome do grupo para-n, --new-name NEW_GROUP
.NEW_GROUP
: altera a senha do grupo.-p, --password PASSWORD
: define a lista de usuários membros do grupo.-U, --users USERS
Por exemplo, para mudar o nome do grupo developers
testers
sudo groupmod -n testers developers
Verificando a Integridade do Grupo com grpck
O comando grpck
/etc/group
/etc/passwd
sudo grpck -r /etc/passwd
Removendo um Grupo com groupdel
O comando groupdel
groupdel [options] GROUP
O parâmetro obrigatório GROUP
testers
sudo groupdel -f testers
A opção -f