No Linux, os arquivos têm três conjuntos de permissões. Um conjunto é para o grupo do arquivo. Antes de atribuir um arquivo a um grupo, você pode verificar quem são os membros do grupo.
índice
- Permissões de arquivo e diretório
- O arquivo /etc/groups
- O comandante
- O comando da tampa
- O diabo está nos detalhes
Permissões de arquivo e diretório
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 é atribuído e permissões para todos que não se enquadram em uma das duas categorias acima.
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 é equivalente a poder fazer 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 de grupo são usadas para permitir que uma coleção 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 o nome apropriado para facilitar a colaboração. Os usuários podem estar em vários grupos ao mesmo tempo.
É um esquema simples, mas robusto. Mas se seus arquivos são confidenciais, você pode ficar 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 mais frequentemente recomendados são problemáticos.
O arquivo /etc/groups
O arquivo "/etc/group" contém dois pontos " :
"Lista delimitada de grupos e membros do grupo. Cada linha tem quatro campos.
- Nome : o nome exclusivo do grupo.
- Chave : Não usada. Isso sempre conterá "x".
- ID do grupo : o identificador exclusivo do grupo.
- Usuários : uma lista delimitada por vírgulas de membros do grupo. A lista geralmente está vazia para contas do sistema e daemon.
Para despejar o conteúdo do arquivo na janela do terminal, você pode usar cat
, mas é mais conveniente poder rolar pelo 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 determinado usuário está, podemos usar o grep
para procurar entradas com o nome da conta de usuário. Esta não é a nossa tarefa atual. Queremos ver todos que são membros de um grupo, não os grupos aos quais uma pessoa pertence. Mas é instrutivo para nós dar 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 quanto 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 aparecem como membros de seus grupos pai . É por isso que o grupo "dave" não mostra nenhum membro, mesmo que o usuário "dave" seja um membro desse grupo.
Obviamente, os administradores do sistema podem alterar o grupo principal de qualquer usuário para o de qualquer outro grupo. Isso significa que um usuário pode ser membro de qualquer grupo, mas não pode aparecer como tal no arquivo "/etc/group". Isso é um problema.
O segundo problema é que o arquivo /etc/group não é uma fonte única de informação. Instalações modernas do Linux podem armazenar informações de usuários e grupos em mais lugares do que "/etc/passwd" e "/etc/group", especialmente em situações corporativas onde serviços como Lightweight Directory Access Protocol são implementados. Ao olhar apenas em um lugar, você pode não estar vendo o quadro geral.
Em nosso cenário de teste, criamos quatro pools para um departamento de desenvolvimento. Eles são:
- voltar ao vapor: A equipe de investigação.
- equipe de desenvolvimento : A equipe de desenvolvimento.
- equipe pvq: A equipe de verificação e qualidade do produto.
- equipe médica : A equipe de documentação.
Adicionamos pessoas a essas equipes. Algumas pessoas estão em mais de uma equipe. Se abrirmos o arquivo /etc/group em 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 intercalado" ^
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 sim?
O comandante
O comando getent
verifica vários bancos de dados para informações de grupos de usuários, não apenas "/etc/group". usaremos getent
para nos mostrar os grupos de usuários.
grupo getent
Usar getent
com a opção group
produz, nesta máquina de teste, os mesmos resultados que usar o arquivo "/etc/group". Isso porque não usamos LDAP ou quaisquer outros serviços de nomenclatura centralizados. Portanto, não há outras fontes a getent
consultadas.
Portanto, não é surpreendente que os resultados correspondam aos do arquivo /etc/group. Talvez o que estamos realmente vendo seja a realidade da situação. Talvez tudo seja simples e, neste computador, o que você vê é o que você obtém? Vamos reservar julgamento sobre isso.
O comando getent
pode olhar para um único grupo para nós. Veremos o grupo "devteam".
grupo devteam getent
Obtemos exatamente os mesmos resultados de antes. No entanto, há uma maneira de ir mais fundo.
O comando da tampa
O comando lid
faz parte da coleção de ferramentas libuser
. Ele já estava instalado em nosso computador de teste Fedora 36, mas teve que ser instalado no Ubuntu 22.04 e no 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ê deve usar seu auxiliar AUR favorito. Usamos yay
.
sim, libuser
Você pode usar libuser-lid
para exibir informações de grupo sobre grupos ou usuários. Para exibir os grupos em que uma pessoa está, passe o nome da conta de usuário na linha de comando. No Fedora e no Manjaro lembre-se de usar lid
em vez de libuser-lid
.
sudo libuser-lib dave
Para ver os membros de um grupo, use o -g
(grupo) junto com o nome do grupo.
sudo libuser-lid -g devteam
E eis que um usuário chamado francis apareceu como membro da lista. Esta é a primeira vez que o vemos. Ele não aparece em "/etc/group" e getent
também não o encontrou.
Vejamos alguns usuários com o domínio de groups
.
grupos Abigail
grupos hayden
grupo francisco
- O usuário "abigail" está em um grupo chamado "abigail" e em outros dois grupos, "resteam" e "devteam".
- O usuário "hayden" está em um grupo chamado "hayden" e em outros dois grupos, "pvqteam" e "docteam".
- O usuário "francis" está em apenas um grupo, o grupo "devteam". É notável que eles não estejam em um grupo chamado "francis".
Sabemos que cada usuário deve ser membro de um grupo principal e que, por padrão, o grupo principal 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 comando id
e ver o que os UIDs e GIDs nos dizem.
vá Abigail
vai francis
O usuário "abigail" tem um UID de 1002 e um GID de 1002. Eles estão em três grupos, um dos quais se chama "abigail". Ele tem um GID de 1002. Este é seu grupo primário padrão .
O usuário "francis" possui um GID de 1019, que corresponde ao GID do grupo "devteam". Este usuário recebeu um novo grupo pai ou o grupo "devteam" foi definido como seu grupo pai quando esse usuário foi adicionado ao sistema.
Quaisquer que fossem, apenas libuser-lid
e relatou sua presença no grupo "devteam".
O diabo está nos detalhes
Por isso, é importante ver os detalhes genuínos.
Os grupos são uma ótima maneira de estabelecer uma colaboração, desde que você saiba com quem está abrindo.
- Steelseries adiciona três headsets à sua linha Arctis Nova
- Novos wearables Fitbit têm mais serviços do Google
descubra mais conteúdo
O que é um amplificador integrado?
Google Pixel Watch também tem detecção de queda, mas não até o próximo ano
As melhores xícaras de café aquecidas de 2022
Como automatizar seu iPhone com base na hora, atividade ou localização
"Isso deve ter sido antes do meu tempo"
Por que a NASA enviou Snoopy para a Lua? – Revisão Geek
Como mudar de grupo no Linux?
Para alterar o grupo que possui o arquivo ou diretório, invoque o comando chgrp seguido pelo novo nome do grupo e o arquivo de destino como argumentos.
Como alterar o usuário e o grupo do Linux?
Para alterar o grupo e também o proprietário, podemos colocar dois pontos após o proprietário e adicionar o grupo . Por exemplo, para alterar o usuário e o grupo para um arquivo, faríamos da seguinte forma: chown web1:client1 /var/www/clients/client1/web1/robots.
Como saber o grupo primário de um usuário Linux?
1) comando de grupos:
Executando o comando groups, aparecerão os grupos aos quais o usuário atual pertence. Se executarmos grupos seguidos de um nome de usuário , veremos os grupos aos quais o usuário indicado pertence.
Como alterar o diretório de um usuário no Linux?
comando usermod
- Para alterar o nome de login de um usuário : usermod -l oldname newname.
- Para alterar o diretório /home de um usuário , use: usermod -d /new/ directory -m username.
- Para adicionar o usuário a outros grupos suplementares: usermod -G group1,group2,group3.