![5 dicas para aumentar o desempenho do seu servidor da Web Apache](/f/d99d60542ac288bb99ab68bf3a85f283.png?width=100&height=100)
Em agosto passado, a Linux Foundation iniciou o LFCS certificação (Administrador de sistemas certificado pela Linux Foundation), um programa totalmente novo cujo objetivo é permitir que indivíduos em qualquer lugar e em qualquer lugar façam um exame para obter a certificação no básico para suporte operacional intermediário para sistemas Linux, que inclui suporte a sistemas e serviços em execução, juntamente com o monitoramento geral e análise, além de tomada de decisão inteligente para poder decidir quando é necessário escalar os problemas para equipes de suporte de nível superior.
Dê uma olhada rápida no vídeo a seguir, que descreve uma introdução ao Programa de Certificação da Linux Foundation.
Este artigo é a Parte 8 de uma longa série de 10 tutoriais, aqui nesta seção, iremos orientá-lo sobre como gerenciar permissões de usuários e grupos no sistema Linux, que são necessárias para o exame de certificação LFCS.
Uma vez que 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 realizar o gerenciamento de usuários eficaz: como adicionar, editar, suspender ou excluir contas de usuários, além de conceder a eles as permissões necessárias para fazer suas atribuições tarefas.
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 realizadas.
1. Seu diretório pessoal é criado (/home/username por padrão).
2. Os seguintes arquivos ocultos são copiados para o 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 spool de correio é criado para o usuário em / var / spool / mail /nome do usuário.
4. Um grupo é criado e recebe o mesmo nome da nova conta de usuário.
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 tem o seguinte formato (os campos são delimitados por dois pontos).
[nome de usuário]: [x]: [UID]: [GID]: [Comentário]: [Diretório inicial]: [Shell padrão]
As informações do grupo são armazenadas no /etc/group Arquivo. Cada registro tem o seguinte formato.
[Nome do grupo]: [Senha do grupo]: [GID]: [Membros do grupo]
Depois de adicionar uma conta, você pode editar as seguintes informações (para citar alguns campos) usando o usermod comando, cuja sintaxe básica de usermod é a seguinte.
# usermod [opções] [nome de usuário]
Use o -data de validade bandeira seguida por uma data em AAAA-MM-DD formato.
# usermod --expiredate 2014-10-30 tecmint.
Use o combinado -aG, ou -acrescentar–Grupos opções, seguidas por uma lista de grupos separados por vírgulas.
# usermod --append --groups root, users tecmint.
Use o -d, ou -casa opções, seguidas pelo caminho absoluto para o novo diretório inicial.
# usermod --home / tmp tecmint.
Usar -Concha, seguido pelo caminho para o novo shell.
# usermod --shell / bin / sh tecmint.
# grupos tecmint. # id tecmint.
Agora vamos executar todos os comandos acima de uma vez.
# usermod --expiredate 2014-10-30 --append --groups root, users --home / tmp --shell / bin / sh tecmint.
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 inicial para /tmp:
Leia também:
Para contas existentes, também podemos fazer o seguinte.
Use o -EU (L maiúsculo) ou o -trancar opção de bloquear a senha de um usuário.
# usermod --lock tecmint.
Use o -você ou o –Unlock opção para desbloquear a senha de um usuário que foi bloqueado anteriormente.
# usermod --unlock tecmint.
Execute a seguinte série de comandos para atingir o objetivo.
# groupadd common_group # Adicione um novo grupo. # chown: common_group common.txt # Altere o proprietário do grupo de common.txt para common_group. # usermod -aG common_group user1 # Adiciona user1 ao common_group. # usermod -aG common_group user2 # Adiciona user2 ao common_group. # usermod -aG common_group user3 # Adiciona user3 ao common_group.
Você pode excluir um grupo com o seguinte comando.
# groupdel [group_name]
Se houver arquivos pertencentes a nome do grupo, eles não serão excluídos, mas o proprietário do grupo será definido como o GID do grupo que foi excluído.
Além das permissões básicas de leitura, gravação e execução que discutimos em Ferramentas de arquivamento e 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 por meio de uma letra (notação simbólica) que indica o tipo de permissão.
Você pode excluir uma conta (junto com seu diretório inicial, se for de propriedade do usuário, e todos os arquivos que residem nela, e também o spool de correio) usando o userdel comando com o -remover opção.
# userdel --remove [nome de usuário]
Cada 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 posteriormente. Um dos objetivos dos grupos é implementar um controle de acesso simples a arquivos e outros recursos do sistema, definindo as permissões corretas sobre esses recursos.
Por exemplo, suponha que você tenha os seguintes usuários.
Todos eles precisam ler e Escreva acesso a um arquivo chamado common.txt localizado em algum lugar em seu sistema local, ou talvez em um compartilhamento de rede que usuário1 criou. Você pode ficar tentado a fazer algo como,
# chmod 660 common.txt. OU. # chmod u = rw, g = rw, o = common.txt [observe o espaço entre o último sinal de igual e o nome do arquivo]
No entanto, isso só fornecerá ler e Escreva acesso ao proprietário do arquivo e aos usuários que são membros do grupo proprietário 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 pertencentes ao 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.
Quando o setuid permissão é aplicada a um arquivo executável, um usuário executando o programa herda os privilégios efetivos do proprietário do programa. Como essa abordagem pode levantar questões de segurança de maneira razoável, o número de arquivos com permissão setuid deve ser mínimo. Você provavelmente encontrará programas com esta permissão definida quando um usuário do sistema precisar acessar um arquivo pertencente ao root.
Resumindo, não é apenas que o usuário pode executar o arquivo binário, mas também pode fazê-lo com os privilégios de root. Por exemplo, vamos verificar as permissões de /bin/passwd. Este binário é usado para alterar a senha de uma conta e modifica o /etc/shadow Arquivo. O superusuário pode alterar a senha de qualquer pessoa, mas todos os outros usuários só devem ser capazes de alterar a sua própria.
Assim, qualquer usuário deve ter permissão para executar /bin/passwd, mas apenas o root poderá especificar uma conta. Outros usuários só podem alterar suas senhas correspondentes.
Quando o setgid bit está definido, o efetivo GID do usuário real passa a ser do proprietário do grupo. Assim, qualquer usuário pode acessar um arquivo com os privilégios concedidos ao proprietário do grupo de tal 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 subdiretórios recém-criados também herdarão o bit setgid do pai diretório. 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, acrescente o número 2 às permissões básicas atuais (ou desejadas).
# chmod 2755 [diretório]
Quando o "pedaço pegajoso”É definido em arquivos, o Linux simplesmente ignora, enquanto para diretórios tem o efeito de impedir os usuários de excluir ou mesmo renomear os arquivos que ele contém, a menos que o usuário seja o proprietário do diretório, do arquivo ou seja raiz.
# chmod o + t [diretório]
Para definir o pedaço pegajoso na forma octal, acrescente o número 1 às permissões básicas atuais (ou desejadas).
# chmod 1755 [diretório]
Sem o sticky bit, qualquer pessoa capaz de gravar no diretório pode excluir ou renomear arquivos. Por esse motivo, o sticky bit é comumente encontrado em diretórios, como /tmp, que podem ser gravados em todo o mundo.
Existem outros atributos que permitem limites adicionais nas operações permitidas nos arquivos. Por exemplo, evite que o arquivo seja renomeado, movido, excluído ou até mesmo modificado. Eles são definidos com o comando chattr e pode ser visto usando o lsattr ferramenta, como segue.
# chattr + i arquivo1. # chattr + um arquivo2.
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 arquivo2 entrará no modo somente acréscimo (só pode ser aberto no modo acréscimo para gravação).
Uma das maneiras de os usuários obterem acesso à conta root é digitando.
$ su.
e depois inserir a senha do root.
Se a autenticação for bem-sucedida, você será conectado como raiz com o diretório de trabalho atual como o mesmo de antes. Se você quiser ser colocado no diretório inicial do root, execute.
$ su -
e, em seguida, digite a senha do root.
O procedimento acima requer que um usuário normal conheça a senha do root, o que representa um sério risco de segurança. Por esse motivo, o administrador do sistema pode configurar o sudo comando para permitir que um usuário comum execute comandos como um usuário diferente (geralmente o superusuário) de uma forma muito controlada e limitada. Assim, as restrições podem ser definidas em um usuário de forma a permitir que ele execute um ou mais comandos com privilégios específicos e nenhum outro.
Leia também: Diferença entre usuário su e sudo
Para autenticar usando sudo, o usuário usa sua própria senha. Depois de inserir o comando, será solicitada nossa senha (não a do superusuário) e se o 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 em Instale e use 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 = NOPASSWD: / bin / updatedb. % admin ALL = (ALL) ALL.
Vamos dar uma olhada neles.
Padrões secure_path = "/ usr / sbin: / usr / bin: / sbin: / usr / local / bin"
Esta linha permite que você especifique os diretórios que serão usados para sudoe é usado para evitar o uso de diretórios específicos do usuário, que podem danificar o sistema.
As próximas linhas são usadas para especificar permissões.
root ALL = (ALL) ALL.
tecmint ALL = / bin / yum update.
Se nenhum usuário for especificado após o = assinar, sudo assume o usuário root. Neste caso, o usuário tecmint será capaz de correr yum atualização como root.
gacanepa ALL = NOPASSWD: / bin / updatedb.
O NOPASSWD diretiva permite que o usuário gacanepa execute /bin/updatedb sem precisar digitar sua senha.
% admin ALL = (ALL) ALL.
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 são concedidos a você pelo sudo, use o botão “-eu”Opção para listá-los.
Módulos de autenticação plugáveis (PAM) oferecem a flexibilidade de definir um esquema de autenticação específico por aplicativo e / ou por serviço usando módulos. Esta ferramenta presente em todas as distribuições Linux modernas superou o problema frequentemente enfrentado pelos desenvolvedores nos primeiros dias de Linux, quando cada programa que exigia autenticação teve que ser compilado especialmente para saber como obter o necessário em formação.
Por exemplo, com o PAM, não importa se sua senha está armazenada em /etc/shadow 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, alterar o esquema de autenticação para o aplicativo de login (ou qualquer outro programa usando PAM) é fácil uma vez que 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
indique quais aplicativos estão usando o PAM nativamente. Além disso, podemos dizer se um determinado aplicativo usa PAM verificando se ele é a biblioteca PAM (libpam) foi vinculado a ele:
# ldd $ (qual login) | grep libpam # login usa PAM. # ldd $ (qual topo) | grep libpam # top não usa PAM.
Na imagem acima, podemos ver que o libpam foi vinculado ao aplicativo de login. Isso faz sentido, uma vez que este aplicativo está envolvido na operação de autenticação do usuário do sistema, enquanto o top não.
Vamos examinar o arquivo de configuração do PAM para senha - sim, o conhecido utilitário para alterar as senhas dos usuários. Está localizado em /etc/pam.d/passwd:
# cat / etc / passwd.
A primeira coluna indica o modelo
de autenticação a ser usado com o caminho do módulo
(terceira coluna). Quando um hífen aparece antes do tipo, o PAM não gravará no log do sistema se o módulo não puder ser carregado porque não foi encontrado no sistema.
Os seguintes tipos de autenticação estão disponíveis:
conta
: este tipo de módulo verifica se o usuário ou serviço forneceu credenciais válidas para autenticação.auth
: este tipo de módulo verifica se o usuário é quem afirma ser e concede todos os privilégios necessários.senha
: este tipo de módulo permite ao usuário ou serviço atualizar sua senha.sessão
: este tipo de módulo indica o que deve ser feito antes e / ou depois que a autenticação for bem-sucedida.A segunda coluna (chamada ao controle
) indica o que deve acontecer se a autenticação com este módulo falhar:
necessário
: se a autenticação por meio deste módulo falhar, a autenticação geral será negada imediatamente.requeridos
é semelhante ao requisito, embora todos os outros módulos listados para este serviço sejam chamados antes de negar a autenticação.suficiente
: se a autenticação por meio deste módulo falhar, o PAM ainda concederá autenticação, mesmo se um anterior marcado como obrigatório falhou.opcional
: se a autenticação através deste módulo falhar ou for bem sucedida, nada acontece a menos que este seja o único módulo do seu tipo definido para este serviço.incluir
significa que as linhas de um determinado tipo devem ser lidas de outro arquivo.sub-pilha
é semelhante a inclui, mas as falhas ou sucessos de autenticação não causam a saída do módulo completo, mas apenas da subpilha.A quarta coluna, se existir, mostra os argumentos a serem passados ao módulo.
As primeiras três linhas em /etc/pam.d/passwd (mostrado acima), carregue o autenticação do sistema módulo para verificar se o usuário forneceu credenciais válidas (conta). Em caso afirmativo, permite que ele / ela altere o token de autenticação (senha), dando permissão para usar passwd (auth).
Por exemplo, se você anexar
lembre-se = 2.
para a linha seguinte
senha suficiente pam_unix.so sha512 shadow nullok try_first_pass use_authtok.
em /etc/pam.d/system-auth:
senha suficiente pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember = 2.
as duas últimas senhas com hash de cada usuário são salvas em /etc/security/opasswd para que não possam ser reutilizados:
Habilidades eficazes de gerenciamento de usuários e arquivos são ferramentas essenciais para qualquer administrador de sistema. Neste artigo, cobrimos o básico e esperamos que você possa usá-lo como um bom ponto de partida para construir. Fique à vontade para deixar seus comentários ou perguntas abaixo, e nós responderemos rapidamente.