No Linux, os arquivos têm três conjuntos de permissões. Um conjunto é para o grupo do arquivo. Antes de alocar um arquivo a um grupo, você pode verificar quem são os membros do grupo.
Índice
Arquivos e diretórios no Linux têm um conjunto de permissões para o proprietário, outro conjunto para o grupo ao qual o arquivo está alocado e permissões para todos que não estão em uma das duas categorias anteriores.
Cada conjunto de permissões define se os membros dessa categoria podem ler, gravar ou executar o arquivo. No caso de um diretório, a ação de execução equivale a ser capaz de
cd
no diretório.
O grupo padrão para um arquivo ou diretório é o grupo padrão do proprietário. Geralmente é a pessoa que o criou . As permissões do grupo são usadas para permitir que um conjunto de usuários tenha acesso controlado aos arquivos e diretórios dos outros membros desse grupo.
Por exemplo, você pode ter uma equipe de desenvolvedores, uma equipe de documentação, uma equipe de pesquisa e assim por diante. Os membros de cada equipe podem ser adicionados a um grupo com nome adequado , para ajudar na colaboração. Os usuários podem estar em vários grupos ao mesmo tempo.
É um esquema simples, mas robusto. Mas se seus arquivos forem confidenciais, você poderá se sentir mais feliz verificando quem são os membros do grupo antes de compartilhar seu trabalho com eles. Existem diferentes maneiras de fazer isso. Mas tome nota. Os dois métodos recomendados com mais frequência são problemáticos.
O arquivo “/etc/group” contém dois pontos “
:
” lista delimitada de grupos e membros do grupo. Cada linha possui quatro campos.
Para despejar o conteúdo do arquivo na janela do terminal, você pode usar
cat
, mas é mais conveniente poder percorrer o conteúdo do arquivo com less
.
menos /etc/grupo
A maioria das entradas no topo da lista não tem membros, embora o grupo “adm” tenha dois e o grupo “cdrom” tenha um.
Se quisermos descobrir os grupos em que um usuário específico está, podemos usar grep
para pesquisar entradas com o nome da conta do usuário. Esta não é a nossa tarefa em mãos. Queremos ver todos os membros de um grupo, não os grupos aos quais uma pessoa pertence. Mas é instrutivo darmos uma olhada.
grep "dave" /etc/group
As entradas que contêm a string “dave” são listadas para nós. E escondido entre eles está um sinal de que as coisas podem não ser tão simples como pensávamos.
Quando um usuário é adicionado ao Linux , a ação padrão é colocá-lo em um grupo com o mesmo nome de sua conta de usuário. Este é o seu grupo principal. Quaisquer outros grupos aos quais eles são adicionados são conhecidos como grupos secundários.
O problema é que os usuários não estão listados como membros de seus grupos primários. É por isso que o grupo “dave” não mostra nenhum membro, embora o usuário “dave” seja membro desse grupo.
É claro que os administradores do sistema podem alterar o grupo principal de qualquer usuário para qualquer outro grupo. Isso significa que um usuário pode ser membro de qualquer grupo, mas não será listado como tal no arquivo “/etc/group”. Esse é um problema.
A segunda questão é que o arquivo “/etc/group” não é uma única fonte de verdade. As instalações modernas do Linux podem armazenar informações de usuários e grupos em mais locais do que “/etc/passwd” e “/etc/group”, especialmente em situações corporativas onde serviços como o Lightweight Directory Access Protocol são implantados . Ao olhar apenas para um lugar, você pode não estar vendo o quadro geral.
Em nosso cenário de teste, criamos quatro grupos para um departamento de desenvolvimento. Eles são:
Adicionamos pessoas a essas equipes. Algumas pessoas estão em mais de uma equipe. Se abrirmos o arquivo “/etc/group” less
e rolarmos até o final do arquivo, veremos os novos grupos e membros do grupo. Pelo menos tantos membros quanto o arquivo “/etc/group” conhece.
Se quisermos extrair um único grupo, podemos pesquisar usando grep
. O sinal de intercalação ” ^
” representa o início de uma linha.
grep "^devteam" /etc/group
Isso extrai a entrada “devteam” do arquivo e lista todos os membros do grupo. Ou não?
O getent
comando verifica vários bancos de dados em busca de informações de grupos de usuários, não apenas “/etc/group”. Usaremos getent
para nos mostrar os grupos de usuários.
grupo getente
Usar getent
com a group
opção produz — nesta máquina de teste — os mesmos resultados que usar o arquivo “/etc/group”. Isso ocorre porque não estamos usando LDAP ou qualquer outro serviço de nomenclatura centralizado. Portanto, não há outras fontes para getent
referência.
Não é nenhuma surpresa, então, que os resultados correspondam aos do arquivo “/etc/group”. Talvez o que estejamos vendo realmente seja a realidade da situação. Talvez tudo seja simples e – neste computador – o que você vê é o que você obtém? Vamos reservar um julgamento sobre isso.
O getent
comando pode analisar um único grupo para nós. Veremos o grupo “devteam”.
equipe de desenvolvimento do grupo getent
Obtemos exatamente os mesmos resultados de antes. Porém, existe uma maneira de ir mais fundo.
O lid
comando faz parte da libuser
coleção de ferramentas. Já estava instalado em nosso computador de teste Fedora 36, mas teve que ser instalado no Ubuntu 22.04 e Manjaro 21.
Além disso, o comando é chamado lid
no Fedora e no Manjaro, mas no Ubuntu você precisa usar libuser-lid
.
Para instalar o comando no Ubuntu, digite:
sudo apt instalar libuser
No Manjaro, libuser
é instalado a partir do AUR, então você precisará usar seu auxiliar AUR favorito. Nós usamos yay
.
olá, libuser
Você pode usar libuser-lid
para exibir informações de grupo sobre grupos ou usuários. Para mostrar os grupos em que um indivíduo está, passe o nome da conta de usuário na linha de comando. No Fedora e Manjaro lembre-se de usar lid
em vez de libuser-lid
.
sudo libuser-lib dave
Para ver os membros de um grupo, use a -g
opção (grupo) junto com o nome do grupo.
sudo libuser-lid -g devteam
Eis que um usuário chamado “francis” apareceu como membro da lista. Esta é a primeira vez que o vemos. Ele não está listado em “/etc/group” e getent
também não o descobriu.
Vejamos alguns usuários com o groups
comando.
grupos Abigail
grupos hayden
grupos francisco
Sabemos que cada usuário deve ser membro de um grupo primário e que, por padrão, o grupo primário tem um GID e um nome que correspondem ao UID e ao nome da conta do usuário. Parece que há algo diferente no usuário “francis”.
Vamos usar o id
comando e ver o que o UID e os GIDs nos dizem.
idabigail
id francisco
O usuário “abigail” tem um UID 1002 e um GID 1002. Eles estão em três grupos, um dos quais é chamado “abigail”. Ele tem um GID de 1002. Este é o grupo primário padrão.
O usuário “francis” possui um GID 1019, que corresponde ao GID do grupo “devteam”. Este usuário recebeu um novo grupo primário ou o grupo “devteam” foi definido como seu grupo principal quando este usuário foi adicionado ao sistema .
Qualquer que fosse, apenas libuser-lid
os detectou e reportou sua presença no grupo “devteam”.
Portanto, é importante ver os detalhes genuínos.
Os grupos são uma ótima maneira de estabelecer colaboração, desde que você saiba com quem está abrindo.
Muitos aplicativos de limpeza estão disponíveis para Windows ao longo dos anos, mas hoje em…
Seu PlayStation 4 está congelado? Seus jogos favoritos continuam travando? Reiniciar seu PS4 pode resolver…
A popularidade das mensagens de texto significou aprender uma forma totalmente nova de comunicação. Você…
A foto dos "Pilares da Criação" tirada pelo Telescópio Espacial Hubble é uma das fotos…
O Proton Drive saiu de seu estágio beta há algumas semanas, mas o aplicativo real…
Para ver suas fotos mais de perto ou para uma edição precisa , você pode…