Gerenciando usuários e grupos, permissões e atributos de arquivo e permitindo acesso a sudo em contas - Parte 8

Gerenciando usuários e grupos, permissões e atributos de arquivo e permitindo acesso a sudo em contas - Parte 8

Em agosto passado, a Fundação Linux começou o LFCs certificação (Linux Foundation Certified Sysadmin), um novo programa cujo objetivo é permitir que indivíduos em todos os lugares e em qualquer lugar façam um exame para obter o suporte operacional básico a intermediário para sistemas Linux, que inclui suportar sistemas e serviços de execução, além de monitoramento e análise gerais, além de inteligência inteligente Tomada de decisão para poder decidir quando é necessário escalar problemas para equipes de suporte de nível superior.

Linux Foundation Certified Sysadmin - Parte 8

Por favor, dê uma rápida olhada no vídeo a seguir que descreve uma introdução ao programa de certificação Linux Foundation.

Este artigo é a parte 8 de uma série longa de 10 tutoriais, aqui nesta seção, guiaremos você sobre como gerenciar usuários e grupos permissões no sistema Linux, que são necessários para o exame de certificação LFCS.

Como o Linux é um sistema operacional multiusuário (na medida em que permite que vários usuários em diferentes computadores ou terminais acessem um único sistema), você precisará saber como executar o gerenciamento eficaz do usuário: como adicionar, editar, suspender ou excluir Contas de usuário, além de conceder -lhes as permissões necessárias para realizar suas tarefas atribuídas.

Adicionando contas de usuário

Para adicionar uma nova conta de usuário, você pode executar um dos dois comandos a seguir como root.

# adduser [new_account] # useradd [new_account] 

Quando uma nova conta de usuário é adicionada ao sistema, as seguintes operações são executadas.

1. Seu diretório doméstico é criado (/Home/Nome de usuário por padrão).

2. Os seguintes arquivos ocultos são copiados no diretório inicial do usuário e serão usados ​​para fornecer variáveis ​​de ambiente para sua sessão de usuário.

.Bash_logout .Bash_profile .Bashrc 

3. Um carretel de correio é criado para o usuário em/var/spool/e -mail/nome de usuário.

4. Um grupo é criado e com o mesmo nome da nova conta de usuário.

Compreensão /etc /passwd

As informações completas da conta são armazenadas no /etc/passwd arquivo. Este arquivo contém um registro por conta de usuário do sistema e possui o seguinte formato (os campos são delimitados por um cólon).

[Nome de usuário]: [x]: [UID]: [GID]: [Comentário]: [Diretório da casa]: [Shell padrão] 
  1. Campos [nome de usuário] e [Comente] são auto -explicativos.
  2. O x No segundo campo indica que a conta é protegida por uma senha sombreada (em /etc/sombra), o que é necessário para fazer logon como [nome de usuário].
  3. O [UID] e [GID] Campos são números inteiros que representam a identificação do usuário e a identificação do grupo primário para o qual [nome de usuário] pertence, respectivamente.
  4. O [Diretório da casa] indica o caminho absoluto para [nome de usuário]diretório doméstico e
  5. O [Shell padrão] é o shell que será disponibilizado a este usuário quando ele logins do sistema.
Compreensão /etc /grupo

As informações do grupo são armazenadas no /etc/grupo arquivo. Cada registro tem o seguinte formato.

[Nome do grupo]: [Senha do grupo]: [GID]: [membros do grupo] 
  1. [Nome do grupo] é o nome do grupo.
  2. Um x em [Senha do grupo] indica senhas de grupo não estão sendo usadas.
  3. [GID]: o mesmo que em /etc /passwd.
  4. [Membros do grupo]: Uma lista separada por vírgula de usuários que são membros de [Nome do grupo].
Adicionar contas de usuário

Depois de adicionar uma conta, você pode editar as seguintes informações (para citar alguns campos) usando o Usermod Comando, cuja sintaxe básica do UserMod é a seguinte.

# UserMod [Opções] [Nome de usuário] 
Definindo a data de validade para uma conta

Use o -data de validade bandeira seguida de uma data em AAAA-MM-DD formatar.

# UserMod --expiredate 2014-10-30 Tecmint 
Adicionando o usuário a grupos suplementares

Use o combinado -AG, ou -acrescentar -grupos opções, seguidas por uma lista separada por vírgula de grupos.

# UserMod -Append --Groups Root, Usuários Tecmint 
Alterando o local padrão do diretório inicial do usuário

Use o -d, ou -lar opções, seguidas pelo caminho absoluto para o novo diretório doméstico.

# UserMod -Home /TMP Tecmint 
Alterando o shell que o usuário usará por padrão

Usar -concha, seguido pelo caminho para a nova concha.

# UserMod -Shell /Bin /Sh 
Exibindo os grupos um usuário é um membro de
# Grupos Tecmint # Id Tecmint 

Agora vamos executar todos os comandos acima.

# UserMod --expiredate 2014-10-30-Append --Groups Root, Usuários-Home /TMP-Shell /Bin /Sht Tecmint 
Exemplos de comando UserMod

No exemplo acima, definiremos a data de validade do Tecmint conta de usuário para 30 de outubro de 2014. Também adicionaremos a conta ao raiz e grupo de usuários. Finalmente, vamos definir sh como seu shell padrão e altere a localização do diretório doméstico para /tmp:

Leia também:

  1. 15 exemplos de comando userAdd no Linux
  2. 15 Exemplos de comando UserMod no Linux

Para contas existentes, também podemos fazer o seguinte.

Desativar a conta bloqueando a senha

Use o -eu (maiúsculas l) ou o -trancar opção para bloquear a senha de um usuário.

# UserMod -Tecmint 
Desbloqueando a senha do usuário

Use o -você ou o -desbloquear opção para desbloquear a senha de um usuário que foi bloqueada anteriormente.

# UserMod -Tecmint 
Bloquear contas de usuário
Criando um novo grupo para ler e escrever acesso a arquivos que precisam ser acessados ​​por vários usuários

Execute a seguinte série de comandos para atingir a meta.

# groupadd Common_group # Adicionar um novo grupo # CHOW: Common_group Common.txt # altere o proprietário do grupo do Common.txt para Common_group # UserMod -AG Common_Group User1 # Adicionar usuário1 ao Common_Group # UserMod -AG Common_Group User2 # Adicionar usuário2 ao Common_group # UserMod -AG Common_Group User3 # 
Excluindo um grupo

Você pode excluir um grupo com o seguinte comando.

# groupdel [group_name] 

Se houver arquivos de propriedade de nome do grupo, eles não serão excluídos, mas o proprietário do grupo será definido para o Gid do grupo que foi excluído.

Permissões de arquivo Linux

Além das permissões básicas de leitura, gravação e execução que discutimos nas ferramentas de arquivamento e na definição de atributos de arquivo - Parte 3 desta série, existem outras configurações de permissão menos usadas (mas não menos importantes), às vezes chamadas de “Permissões especiais”.

Como as permissões básicas discutidas anteriormente, elas são definidas usando um arquivo octal ou através de uma carta (notação simbólica) que indica o tipo de permissão.

Excluindo contas de usuário

Você pode excluir uma conta (junto com seu diretório doméstico, se for de propriedade do usuário e todos os arquivos que residem nele, e também o carretel de correio) usando o UserDel comando com o -remover opção.

# userdel - -remove [nome de usuário] 

Gerenciamento de grupo

Toda vez que uma nova conta de usuário é adicionada ao sistema, um grupo com o mesmo nome é criado com o nome de usuário como seu único membro. Outros usuários podem ser adicionados ao grupo mais tarde. Um dos propósitos de grupos é implementar um simples controle de acesso a arquivos e outros recursos do sistema, definindo as permissões corretas nesses recursos.

Por exemplo, suponha que você tenha os seguintes usuários.

  1. Usuário1 (Grupo Primário: Usuário1)
  2. User2 (Grupo Primário: Usuário2)
  3. User3 (Grupo Primário: Usuário3)

Todos eles precisam ler e escrever acesso a um arquivo chamado comum.TXT localizado em algum lugar do seu sistema local, ou talvez em uma rede compartilhe que usuário1 criou. Você pode ficar tentado a fazer algo como,

# chmod 660 comum.txt ou # chmod u = rw, g = rw, o = comum.txt [Observe o espaço entre o último sinal igual e o nome do arquivo] 

No entanto, isso só fornecerá ler e escrever acesso ao proprietário do arquivo e aos usuários que são membros do proprietário do grupo do arquivo (usuário1 nesse caso). Novamente, você pode ficar tentado a adicionar usuário2 e usuário3 agrupar usuário1, Mas isso também lhes dará acesso ao restante dos arquivos de propriedade do usuário usuário1 e grupo usuário1.

É aqui que os grupos são úteis, e aqui está o que você deve fazer em um caso como este.

Entendendo o setuid

Quando o setuid A permissão é aplicada a um arquivo executável, um usuário que executa o programa herda os privilégios efetivos do proprietário do programa. Como essa abordagem pode razoavelmente aumentar as preocupações de segurança, o número de arquivos com permissão setuid deve ser mantido no mínimo. Você provavelmente encontrará programas com este conjunto de permissão quando um usuário do sistema precisar acessar um arquivo de propriedade da raiz.

Resumindo, não é apenas que o usuário possa executar o arquivo binário, mas também que ele possa fazê -lo com os privilégios da raiz. Por exemplo, vamos verificar as permissões de /bin/passwd. Este binário é usado para alterar a senha de uma conta e modificar o /etc/sombra arquivo. O superusuário pode alterar a senha de qualquer pessoa, mas todos os outros usuários só devem ser capazes de mudar seus próprios.

Exemplos de comando passwd

Assim, qualquer usuário deve ter permissão para executar /bin/passwd, Mas apenas a raiz poderá especificar uma conta. Outros usuários só podem alterar suas senhas correspondentes.

Alterar senha do usuário
Entendendo o setGid

Quando o setGid Bit está definido, o eficaz Gid do verdadeiro usuário se torna o do proprietário do grupo. Assim, qualquer usuário pode acessar um arquivo sob os privilégios concedidos ao proprietário do grupo desse arquivo. Além disso, quando o bit Setgid é definido em um diretório, os arquivos recém -criados herdam o mesmo grupo que o diretório, e os subdiretos recém -criados também herdarão o bit Setgid do diretório pai. Você provavelmente usará essa abordagem sempre que os membros de um determinado grupo precisarem de acesso a todos os arquivos em um diretório, independentemente do grupo principal do proprietário do arquivo.

# chmod g+s [nome do arquivo] 

Para definir o setGid Na forma octal, prenda o número 2 para as permissões básicas atuais (ou desejadas).

# chmod 2755 [diretório] 
Definindo o setgid em um diretório
Adicionar setGid ao diretório
Compreendendo a parte pegajosa

Quando o "Bit pegajoso”Está definido em arquivos, o Linux apenas o ignora, enquanto para os diretórios tem o efeito de impedir que os usuários excluam ou até renomeem os arquivos que ele contém, a menos que o usuário possua o diretório, o arquivo ou seja root.

# chmod o+t [diretório] 

Para definir o Bit pegajoso Na forma octal, prenda o número 1 para as permissões básicas atuais (ou desejadas).

# chmod 1755 [diretório] 

Sem a parte pegajosa, qualquer pessoa capaz de escrever no diretório pode excluir ou renomear arquivos. Por esse motivo, a parte pegajosa é comumente encontrada em diretórios, como /tmp, que são criados mundialmente.

Adicione o stickybit ao diretório

Atributos especiais de arquivo Linux

Existem outros atributos que permitem limites adicionais nas operações permitidas nos arquivos. Por exemplo, impeça que o arquivo seja renomeado, movido, excluído ou mesmo modificado. Eles são definidos com o comando chattr e podem ser vistos usando o LSATTR ferramenta, como segue.

# chattr +i arquivo1 # chattr +a file2 

Depois de executar esses dois comandos, arquivo1 será imutável (o que significa que não pode ser movido, renomeado, modificado ou excluído), enquanto File2 Entrará no modo somente apendeiro (só pode ser aberto no modo Apêndice para escrever).

Comando chattr para proteger os arquivos

Acessando a conta raiz e usando sudo

Uma das maneiras pelas quais os usuários podem obter acesso à conta raiz é digitando.

$ su 

e depois inserindo a senha do root.

Se a autenticação for bem -sucedida, você será conectado como raiz com o diretório de trabalho atual da mesma forma que você era antes. Se você quiser ser colocado no diretório doméstico da raiz, execute.

$ su - 

e depois digite a senha do root.

Ativar acesso sudo a usuários

O procedimento acima exige que um usuário normal conheça a senha do root, o que representa um risco de segurança sério. Por esse motivo, o sysadmin pode configurar o sudo comando para permitir que um usuário comum execute os comandos como um usuário diferente (geralmente o superusuário) de uma maneira muito controlada e limitada. Assim, as restrições podem ser definidas em um usuário para permitir que ele execute um ou mais comandos privilegiados específicos e nenhum outro.

Leia também: Diferença entre SU e SUDO Usuário

Para autenticar usando sudo, O usuário usa sua própria senha. Depois de entrar no comando, seremos solicitados a nossa senha (não para o superusuário) e se a autenticação for bem -sucedida (e se o usuário tiver recebido privilégios para executar o comando), o comando especificado é realizado.

Para conceder acesso ao sudo, o administrador do sistema deve editar o /etc/sudoers arquivo. Recomenda -se que este arquivo seja editado usando o Visudo comando em vez de abri -lo diretamente com um editor de texto.

# visudo 

Isso abre o /etc/sudoers arquivo usando vim (Você pode seguir as instruções fornecidas na instalação e usar o vim como editor - parte 2 desta série para editar o arquivo).

Estas são as linhas mais relevantes.

Padrões Secure_Path = "/usr/sbin:/usr/bin:/sbin" root all = (all) all tecmint all =/bin/yum update gacanepa all = nopoasswd:/bin/updatedb %admin all = (all) all) 

Vamos dar uma olhada neles.

Padrões Seguro_path = "/usr/sbin:/usr/bin:/sbin:/usr/local/bin" 

Esta linha permite especificar os diretórios que serão usados ​​para sudo, e é usado para evitar o uso de diretórios específicos do usuário, que podem prejudicar o sistema.

As próximas linhas são usadas para especificar permissões.

raiz tudo = (tudo) tudo 
  1. O primeiro TODOS Palavra -chave indica que esta regra se aplica a todos os hosts.
  2. O segundo TODOS indica que o usuário na primeira coluna pode executar comandos com os privilégios de qualquer usuário.
  3. O terceiro TODOS significa que qualquer comando pode ser executado.
Tecmint all =/bin/yum update 

Se nenhum usuário for especificado após o = sinal, sudo assume o usuário root. Nesse caso, usuário Tecmint será capaz de correr Atualização yum como raiz.

gacanepa all = nopoasswd:/bin/updatedb 

O NoPasswd A diretiva permite que o usuário Gacanepa funcione /bin/updatebb sem precisar inserir sua senha.

%admin all = (todos) todos 

O % O sinal indica que esta linha se aplica a um grupo chamado “admin”. O significado do resto da linha é idêntico ao de um usuário regular. Isso significa que os membros do grupo “admin”Pode executar todos os comandos como qualquer usuário em todos os hosts.

Para ver quais privilégios lhe são concedidos pelo sudo, use o “-eu”Opção para listá -los.

Regras de acesso a sudo

Pam (módulos de autenticação flugable)

Módulos de autenticação traváveis (PAM) Ofereça a flexibilidade de definir um esquema de autenticação específico por aplicação e / ou base por serviço usando módulos. Essa ferramenta presente em todas as distribuições modernas do Linux superou o problema frequentemente enfrentado pelos desenvolvedores nos primeiros dias do Linux, quando cada programa que exigia autenticação teve que ser compilado especialmente para saber como obter as informações necessárias.

Por exemplo, com Pam, não importa se sua senha é armazenada em /etc/sombra ou em um servidor separado dentro de sua rede.

Por exemplo, quando o programa de login precisa autenticar um usuário, o PAM fornece dinamicamente a biblioteca que contém as funções para o esquema de autenticação correto. Assim, é fácil alterar o esquema de autenticação para o aplicativo de login (ou qualquer outro programa usando PAM), pois envolve apenas a edição de um arquivo de configuração (provavelmente, um arquivo com o nome do aplicativo, localizado dentro /etc/pam.d, e menos provável em /etc/pam.conf).

Arquivos dentro /etc/pam.d indicar quais aplicativos estão usando PAM nativamente. Além disso, podemos dizer se um determinado aplicativo usa PAM, verificando se a biblioteca Pam (libpam) foi vinculado a ele:

# ldd $ (qual login) | Grep Libpam # Login usa Pam # LDD $ (que superior) | Grep Libpam # Top não usa Pam 
Verifique a biblioteca Linux Pam

Na imagem acima, podemos ver que o libpam foi vinculado ao aplicativo de login. Isso faz sentido, pois este aplicativo está envolvido na operação da autenticação do usuário do sistema, enquanto o TOP não.

Vamos examinar o arquivo de configuração do PAM para Passwd - Sim, o utilidade bem conhecida para alterar as senhas do usuário. Está localizado em /etc/pam.D/Passwd:

# gato /etc /passwd 
Arquivo de configuração do PAM para senha do Linux

A primeira coluna indica o tipo de autenticação a ser usada com o Módulo-path (Terceira coluna). Quando um hífen aparece antes do tipo, o PAM não será gravado no registro do sistema se o módulo não puder ser carregado porque não pode ser encontrado no sistema.

Os seguintes tipos de autenticação estão disponíveis:

  1. conta: Este tipo de módulo verifica se o usuário ou serviço forneceu credenciais válidas para autenticar.
  2. Auth: Este tipo de módulo verifica se o usuário é quem ele / ela afirma ser e concede os privilégios necessários.
  3. senha: Este tipo de módulo permite que o usuário ou serviço atualize sua senha.
  4. sessão: Este tipo de módulo indica o que deve ser feito antes e/ou depois que a autenticação é bem -sucedida.

A segunda coluna (chamada ao controle) indica o que deve acontecer se a autenticação com este módulo falhar:

  1. requisito: Se a autenticação por este módulo falhar, a autenticação geral será negado imediatamente.
  2. obrigatório é semelhante ao requisito, embora todos os outros módulos listados para este serviço sejam chamados antes de negar a autenticação.
  3. suficiente:.
  4. opcional: Se a autenticação por meio deste módulo falhar ou ter sucesso, nada acontece, a menos que este seja o único módulo de seu tipo definido para este serviço.
  5. incluir significa que as linhas do tipo fornecido devem ser lidas em outro arquivo.
  6. Substack é semelhante a inclui, mas falhas ou sucessos de autenticação não causam a saída do módulo completo, mas apenas da subest de.

A quarta coluna, se existir, mostra os argumentos a serem passados ​​para o módulo.

As três primeiras linhas em /etc/pam.D/Passwd (mostrado acima), carregue o System-Auth Módulo para verificar se o usuário forneceu credenciais válidas (conta). Nesse caso, ele permite que ele altere o token de autenticação (senha), dando permissão para usar o Passwd (Auth).

Por exemplo, se você anexar

lembre -se = 2 

para a seguinte linha

Senha Pam_unix suficiente.Então SHA512 Shadow Nullok Try_first_pass use_authtok 

em /etc/pam.D/System-Auth:

Senha Pam_unix suficiente.Então SHA512 Shadow Nullok Try_first_pass use_authtok Remember = 2 

As duas últimas senhas de hash de cada usuário são salvas em /etc/segurança/opasswd para que eles não possam ser reutilizados:

Campos de senha do Linux

Resumo

Habilidades eficazes de gerenciamento de usuários e arquivos são ferramentas essenciais para qualquer administrador do sistema. Neste artigo, cobrimos o básico e esperamos que você possa usá -lo como um bom começo a apontar para se basear. Sinta -se à vontade para deixar seus comentários ou perguntas abaixo, e responderemos rapidamente.

Torne -se um administrador de sistema certificado Linux