Carregando...
LinuxSegurança de Sistemas

Lidando com usuários no Linux

O Linux permite que diferentes pessoas possam usar o sistema, cada um com seu login, senha e com suas permissões particulares de acesso à softwares, diretórios (pastas) e arquivos.

E caso você queira permitir que vários usuários tenham permissão para algo, você pode criar um grupo, tornar todos os usuários desejados neste grupo, e dar as permissões para o grupo inteiro.

Então no Linux temos usuários e grupos aos quais esses usuários podem fazer parte.

No que um usuário é criado, um grupo com o mesmo nome do usuário é criado automaticamente.

Vendo/Listando todos os usuários e grupos

# Mostrando os usuários
less /etc/passwd
cat /etc/passwd

# Mostrando os grupos
less /etc/group
cat /etc/group

Descobrindo senhas dos usuários no Linux

# Mostrando os usuários e suas senhas
sudo cat /etc/shadow
sudo less /etc/shadow

Uma lista com várias linhas com algo semelhante a isso aparecerá:

meu-usuario:*:16519:0:99999:7:::

Quando o usuário não tem uma senha registrada, encontramos *, ! ou espaço.

Caso o usuário tenha uma senha, ela será mostrada de forma ofuscada ou criptorgafada (em hash ou algum outro algoritmo indicado).

Criando usuários no Linux

Para criar usuários usamos o comando useradd.

# Criando um usuário chamado olivia e também seu diretório /home/olivia
sudo useradd -m olivia

O comando useradd tem vários parâmetros adicionais.

Ao criar o usuário não esqueça de configurar o seu shell padrão:

# Deixando o bash como shell padrão
sudo usermod --shell /bin/bash usuario-desejado

# Ou edite o arquivo /etc/passwd
sudo nano /etc/passwd

# E adicione no caminho para shell no final da linha.
# Exemplo:
meu-usuario:x:1001:1002::/home/meu-usuario:/bin/bash

Alterando senha do usuário recém criado

sudo passwd olivia

Acessando usuário recém criado

su - olivia

Referências

Descobrindo se um usuário tem uma senha registrada
https://infoheap.com/linux-check-if-a-user-has-password/

Entendendo o arquivo shadow do Linux
https://www.cyberciti.biz/faq/understanding-etcshadow-file/

Gerenciando usuários e grupos no Linux (ótimo artigo)
https://www.linux.com/learn/intro-to-linux/2017/12/how-manage-users-groups-linux

Permitindo usuários usarem o systemctl sem precisar usar sudo
https://askubuntu.com/questions/692701/allowing-user-to-run-systemctl-systemd-services-without-password

Permitindo SSH para usuários ou grupos de usuários
https://www.ostechnix.com/allow-deny-ssh-access-particular-user-group-linux/

Tutorial sudo – Digital Ocean
https://www.digitalocean.com/community/tutorials/how-to-edit-the-sudoers-file-on-ubuntu-and-centos

Aqui vai algumas dicas sobre gerenciar usuários no Linux.

O tutorial mais claro que encontrei até o momento foi este aqui, do linux.com. Ele mostra passo-a-passo sobre criação de usuários, criação de grupos, edição de permissões, gerenciando access list.

Fui acessar SSH com o novo usuário, mas o shell parece diferente e com poucas funções, o que está acontecendo?

Provisoriamente você pode executar

bash

Mas para fazer a mudança persistir,

Abra a lista de usuários em /etc/passwd

Lá, o usuário desejado deve estar com final “/bin/sh”, correto? Mude para “/bin/bash” e tudo estará certo.

(No Ubuntu, o “/bin/sh” é um atalho para o “/bin/dash”, estes são linhas de comando simplificadas, sem todas as funções que o bash fornece).

Baseado nesta resposta do Unix Stack Exchange.

Outra forma de fazer isso é:

sudo usermod --shell /bin/bash usuario-desejado

Baseado nessa resposta

Criar uma pasta /home/usuario para seu usuário já existente mas que não tem pasta

mkhomedir_helper usuario

Baseado nesta resposta do Ask Ubuntu.

Dando permissões sudo ao usuário recém criado

Para gerenciar as permissões, você tem duas opções:

  • Gerenciar sudo via arquivo /etc/sudoers
  • Gerenciar sudo via algum arquivo na pasta /etc/sudoers.d/algum-arquivo

A segunda opção é mais adequada porque se você fizer uma atualização de sistema e o arquivo /etc/sudoers for reescrito no processo, você perderá suas configurações.

Para fazer do jeito recomendado, crie um arquivo qualquer (que não contenha ~ ou .) dentro de /etc/sudoers.d/

/etc/sudoers

Vai funcionar, mas não é recomendado, pois caso você faça alguma atualização no Linux, toda a configuração que você fez pode ser perdida. O recomendado é criar um arquivo de qualquer nome (que não tenha . ou ~ em seu nome) dentro da pasta /etc/sudoers.d/

Os arquivos criados devem ter a permissão 0400

É possível usar wildcards no arquivo sudoers? Sim!

É possível usar sim, mas tenha muito cuidado!

Lista de controle de acesso (Access Control List) usando setfacl – como usar e em que casos precisarei usar?

A lista de controle de acesso serve apenas quando você quer definir permissões de acesso diferentes para grupos diferentes.

Isso só será útil num caso tipo o seguinte:

Você tem uma pasta chamada X.

Ela pertence ao grupo A, e o grupo A pode tudo (leitura, escrita e execução).
Usuários que não são donos da pasta e não são do grupo A não podem fazer nada.
Você quer que o grupo B possam ler a pasta X.

Pra isso, você usa o setfacl.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *