Olá pessoal. Esta é uma tradução de um artigo do RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 e EX300.
Por mim mesmo: espero que o artigo seja útil não apenas para iniciantes, mas também ajude administradores mais experientes a organizar seus conhecimentos.
Então vamos lá.

Para acessar arquivos no Linux, são usadas permissões. Essas permissões são atribuídas a três objetos: um arquivo, um grupo e outro objeto (ou seja, todos os outros). Neste artigo, você aprenderá como aplicar permissões.
O artigo começa com uma revisão dos conceitos básicos, após o qual são discutidas permissões especiais e listas de controle de acesso (ACLs). No final deste artigo, você aprenderá como configurar permissões padrão por meio do umask, além de gerenciar atributos avançados do usuário.
Gerenciamento de propriedade de arquivos
Antes de discutir as permissões, você deve estar ciente da função do proprietário do arquivo e diretório. Possuir arquivos e diretórios é vital para trabalhar com permissões. Nesta seção, você aprenderá primeiro como pode ver o proprietário. Você aprenderá como alterar o proprietário e o usuário do grupo por arquivos e diretórios.
Exibir proprietário de um arquivo ou diretório
No Linux, cada arquivo e cada diretório tem dois proprietários: um usuário e um grupo.
Esses proprietários são definidos quando o arquivo ou diretório é criado. O usuário que cria o arquivo se torna o proprietário desse arquivo e o grupo principal, que inclui o mesmo usuário, também se torna o proprietário desse arquivo. Para determinar se você, como usuário, possui direitos de acesso a um arquivo ou diretório, o shell verifica sua propriedade.
Isso acontece na seguinte ordem:- O shell verifica se você possui o arquivo que deseja acessar. Se você é esse proprietário, obtém permissões e o shell para de verificar.
- Se você não possui o arquivo, o shell verificará se você é membro de um grupo que possui permissões nesse arquivo. Se você é membro deste grupo, obtém acesso ao arquivo com as permissões definidas para o grupo, e o shell para de verificar.
- Se você não é o usuário nem o proprietário do grupo, obtém os direitos de outros usuários (Outros).
Para ver as atribuições do proprietário atual, você pode usar o
comando ls -l . Este comando mostra o grupo de usuários e proprietários. Abaixo, você pode ver as configurações do proprietário dos diretórios no diretório / home.
[root@server1 home]
Usando o
comando ls, você pode exibir o proprietário dos arquivos neste diretório. Às vezes, pode ser útil obter uma lista de todos os arquivos no sistema em que o usuário ou grupo é especificado como proprietário. Você pode usar o
find para isso . O
argumento find -user pode ser usado para essa finalidade. Por exemplo, o comando a seguir mostra todos os arquivos que possuem o usuário linda especificado como proprietário:
find / -user linda
Você também pode usar o
find para procurar arquivos nos quais um grupo específico os possui.
Por exemplo, o comando a seguir pesquisa todos os arquivos pertencentes ao grupo de
usuários :
find / -group users
Mudança de propriedade
Para aplicar permissões, a primeira coisa a considerar é a propriedade. Existe um
comando chown para isso. A sintaxe deste comando é fácil de entender:
chown
Por exemplo, o comando a seguir altera o proprietário do diretório / home / account para o usuário linda:
chown linda /home/account
O
comando chown possui várias opções, uma das quais é especialmente útil:
-R . Você pode adivinhar o que faz, porque esta opção também está disponível para muitas outras equipes. Isso permite que você defina recursivamente o proprietário, o que permite definir o proprietário do diretório atual e tudo mais abaixo. O comando a seguir altera o proprietário do diretório / home e tudo abaixo dele para lisa:
Agora os proprietários ficam assim:
[root@localhost ~]
Execute:
[root@localhost ~]
Agora lisa tornou-se o proprietário do diretório da conta:
[root@localhost ~]
Alteração de proprietário do grupo
Existem duas maneiras de alterar a propriedade do grupo. Você pode fazer isso usando
chown , mas existe um comando especial chamado
chgrp que faz o trabalho. Se você deseja usar o
comando chown , use
. ou
: antes do nome do grupo.
O comando a seguir altera qualquer proprietário do grupo / home / account para o grupo de contas:
chown .account /home/account
Você pode usar
chown para alterar o proprietário de um usuário e / ou grupo de várias maneiras. Aqui estão alguns exemplos:
- chown lisa myfile1 define lisa como proprietária de myfile1.
- chown lisa.sales myfile define o usuário lisa como o proprietário do arquivo myfile e também define o grupo de vendas como o proprietário do mesmo arquivo.
- chown lisa: myfile de vendas é igual ao comando anterior.
- chown .sales myfile define o grupo de vendas como o proprietário do arquivo myfile sem alterar o proprietário do usuário.
- chown: myfile de vendas é igual ao comando anterior.
Você pode usar o comando
chgrp para alterar o proprietário do grupo. Considere o exemplo a seguir, onde você pode usar o
chgrp para definir o grupo de vendas como o proprietário do diretório da conta:
chgrp .sales /home/account
Como no
chown , você pode usar a opção
-R no
chgrp e também alterar o proprietário do grupo recursivamente.
Entendendo o proprietário padrão
Você pode perceber que, quando o usuário cria o arquivo, a propriedade padrão é aplicada.
O usuário que cria o arquivo se torna automaticamente o proprietário desse arquivo e o grupo principal desse usuário se torna automaticamente o proprietário desse arquivo. Geralmente, é um grupo especificado no arquivo / etc / passwd como o grupo principal do usuário. No entanto, se o usuário for membro de vários grupos, ele poderá alterar o grupo principal efetivo.
Para mostrar o grupo principal efetivo atual, o usuário pode usar o comando
groups :
[root@server1 ~]
Se o usuário atual linda quiser alterar o grupo primário efetivo, ele usará o comando
newgrp seguido pelo nome do grupo que deseja definir como o novo grupo primário efetivo. Após usar o comando
newgrp , o grupo principal permanecerá ativo até que o usuário emita o
comando exit ou efetue logout.
A seguir, mostramos como lisa usa esse comando para que o grupo de vendas se torne o grupo principal:
lisa@server1 ~]$ groups lisa account sales [lisa@server1 ~]$ newgrp sales [lisa@server1 ~]$ groups sales lisa account [lisa@server1 ~]$ touch file1 [lisa@server1 ~]$ ls -l total 0 -rw-r--r--. 1 lisa sales 0 Feb 6 10:06 file1
Após alterar o grupo principal atual, todos os novos arquivos criados pelo usuário receberão esse grupo como grupo de proprietários.Para retornar à configuração inicial do grupo principal, use
exit .
Para poder usar o comando
newgrp , o usuário deve ser um membro do grupo que ele deseja usar como primário. Além disso, a senha do grupo pode ser usada para o grupo usando o comando
gpasswd . Se o usuário usar o comando
newgrp, mas não for membro do grupo de destino, o shell solicitará a senha do grupo. Depois de inserir a senha correta do grupo, um novo grupo principal efetivo será definido.
Gerenciamento de direitos fundamentais
O sistema de permissão do Linux foi inventado na década de 1970. Como as necessidades de computação eram limitadas naqueles anos, o sistema básico de permissões era bastante limitado. Este sistema de permissão usa três permissões que podem ser aplicadas a arquivos e diretórios. Nesta seção, você aprenderá como usar e alterar essas permissões.
Noções básicas sobre direitos de leitura, gravação e execução
Três permissões básicas permitem ler, gravar e executar arquivos. O efeito dessas permissões difere quando aplicado a arquivos ou diretórios. Para um arquivo, a permissão de leitura lhe dá o direito de abrir o arquivo para leitura. Portanto, você pode ler seu conteúdo, mas isso significa que seu computador pode abrir o arquivo para fazer algo com ele.
Um arquivo de programa que precise acessar uma biblioteca deve, por exemplo, ter acesso de leitura a essa biblioteca. Daqui resulta que a permissão de leitura é a permissão mais básica necessária para trabalhar com arquivos.
Para um diretório, a leitura permite exibir o conteúdo desse diretório. Você deve saber que esta permissão não permite ler arquivos em um diretório. As permissões do Linux não conhecem herança, e a única maneira de ler um arquivo é usar permissões de leitura para esse arquivo.
Como você provavelmente pode adivinhar, a permissão de gravação, se aplicada ao arquivo, permite gravar no arquivo. Em outras palavras, permite modificar o conteúdo dos arquivos existentes. No entanto, ele não permite criar ou excluir novos arquivos ou alterar suas permissões. Para fazer isso, você precisa conceder permissão de gravação ao diretório em que deseja criar o arquivo. Nos diretórios, essa permissão também permite criar e excluir novos subdiretórios.
Permissão de execução é o que você precisa para executar o arquivo. Ele nunca será instalado por padrão, o que torna o Linux quase completamente imune a vírus. Somente alguém com permissões de gravação no diretório pode aplicar permissão para executar.
A seguir, resume o uso de permissões básicas:
Usando chmod
Para gerenciar direitos, use o
comando chmod . Ao usar o
chmod, você pode definir permissões para o usuário (usuário), grupo (grupo) e outros (outros). Você pode usar este comando em dois modos: modo relativo e modo absoluto. No modo absoluto, três dígitos são usados para definir as permissões básicas.

Ao definir permissões, calcule o valor necessário. Se você deseja definir leitura, gravação e execução para o usuário, leitura e execução para o grupo e leitura e execução para outras pessoas no / somefile, use o seguinte
comando chmod :
chmod 755 /somefile
Quando você usa o
chmod dessa maneira, todas as permissões atuais são substituídas pelas permissões definidas.
Se você deseja alterar as permissões relativas às atuais, você pode usar o
chmod no modo relativo. Ao usar o
chmod no modo relativo, você está trabalhando com três indicadores para indicar o que deseja fazer:
- Primeiro, você indica para quem deseja alterar as permissões. Para fazer isso, você pode escolher entre usuário ( u ), grupo ( g ) e outros ( o ).
- Em seguida, você usa o operador para adicionar ou remover permissões do modo atual ou defini-las completamente.
- No final, você usa r , we ex para indicar quais permissões você deseja definir.
Ao alterar as permissões no modo relativo, você pode pular a parte "para" para adicionar ou remover a permissão para todos os objetos. Por exemplo, este comando adiciona permissão de execução para todos os usuários:
chmod +x somefile
Ao trabalhar no modo relativo, você também pode usar comandos mais complexos. Por exemplo, este comando adiciona permissão de gravação a um grupo e remove leituras para outras pessoas:
chmod g+w,or somefile
Ao usar
chmod -R o + rx / data, você define a permissão de execução para todos os diretórios, bem como para os arquivos no diretório / data. Para definir permissão para executar apenas em diretórios, não em arquivos, use
chmod -R o + rX / data .
X maiúsculo garante que os arquivos não tenham permissão para executar se o arquivo ainda não tiver definido a permissão de execução para alguns objetos. Isso torna o X uma maneira mais inteligente de trabalhar com permissões de execução; isso evitará a instalação dessa permissão em arquivos onde não é necessária.
Direitos estendidos
Além das permissões básicas sobre as quais você acabou de ler, o Linux também possui um conjunto de permissões avançadas. Essas não são as permissões padrão definidas por você, mas às vezes fornecem uma adição útil. Nesta seção, você aprenderá o que são e como configurá-los.
Noções básicas sobre permissões estendidas de SUID, GUID e bits persistentes
Existem três permissões avançadas. A primeira delas é a permissão para definir um identificador de usuário (SUID). Em alguns casos especiais, você pode aplicar essa permissão aos arquivos executáveis. Por padrão, o usuário executando o executável executa o arquivo com suas próprias permissões.
Para usuários comuns, isso geralmente significa que o uso do programa é limitado. No entanto, em alguns casos, o usuário requer permissões especiais apenas para executar uma tarefa específica.
Considere, por exemplo, uma situação em que o usuário precise alterar a senha. Para fazer isso, o usuário deve escrever sua nova senha no arquivo / etc / shadow. No entanto, este arquivo não pode ser gravado por usuários não raiz:
root@hnl ~]
A resolução SUID oferece uma solução para esse problema. No utilitário / usr / bin / passwd, essa permissão é usada por padrão. Isso significa que, quando a senha é alterada, o usuário obtém temporariamente privilégios de root, o que lhe permite gravar no arquivo / etc / shadow. Você pode ver a resolução SUID com
ls -l como
s na posição em que normalmente espera ver
x para obter permissões de usuário:
[root@hnl ~]
As permissões SUID podem parecer úteis (e, em alguns casos, são), mas ao mesmo tempo são potencialmente perigosas. Se usado incorretamente, você pode acidentalmente conceder permissões de acesso root. Portanto, recomendo usá-lo apenas com extrema cautela.
A maioria dos administradores nunca precisará usá-lo; você o verá apenas em alguns arquivos nos quais o sistema operacional deve defini-lo por padrão.
A segunda permissão especial é o identificador de grupo (SGID). Esta resolução tem dois efeitos. Quando aplicado a um arquivo executável, fornece ao usuário que está executando o arquivo as permissões do proprietário do grupo desse arquivo. Assim, o SGID pode fazer mais ou menos o mesmo que o SUID. No entanto, o SGID praticamente não é utilizado para esse fim.
Assim como na permissão SUID, o SGID é aplicado a alguns arquivos do sistema como a configuração padrão.
Quando aplicado a um diretório, o SGID pode ser útil porque você pode usá-lo para definir o proprietário do grupo padrão para os arquivos e subdiretórios criados neste diretório. Por padrão, quando um usuário cria um arquivo, seu grupo principal efetivo é definido como o proprietário do grupo para esse arquivo.
Isso nem sempre é muito útil, especialmente porque os usuários do Red Hat / CentOS têm um grupo com o mesmo nome que o usuário e do qual o usuário é o único membro. Assim, por padrão, os arquivos que o usuário cria serão compartilhados.
Imagine uma situação em que os usuários de linda e lori trabalhem em contabilidade e sejam membros do grupo de
contas . Por padrão, esses usuários são membros do grupo privado dos quais são o único membro. No entanto, os dois usuários são membros do grupo de contas, mas também como um parâmetro do grupo secundário.
A situação padrão é que, quando qualquer um desses usuários cria um arquivo, o grupo principal se torna o proprietário. Portanto, por padrão, linda não pode acessar os arquivos criados por lori e vice-versa. No entanto, se você criar o diretório compartilhado de um grupo (digamos / groups / account) e verifique se a permissão SGID é aplicada a este diretório e se a conta do grupo está definida como o proprietário do grupo, todos os arquivos criados nesse diretório e em todos os seus subdiretórios , também obtenha grupos de contas como o proprietário padrão do grupo.
Por esse motivo, a permissão SGID é uma permissão muito útil para instalação em diretórios de grupos compartilhados.
A permissão SGID é mostrada na saída
ls -ld como
s na posição em que você normalmente encontra permissão para executar o grupo:
[root@hnl data]
A terceira das permissões especiais é pegajosa. Essa permissão é útil para proteger arquivos contra exclusão acidental em um ambiente em que vários usuários têm permissões de gravação no mesmo diretório. Se um bit persistente for usado, um usuário poderá excluir um arquivo apenas se ele for o proprietário do arquivo ou diretório em que o arquivo está localizado. Por esse motivo, é usado como a permissão padrão para o diretório / tmp e também pode ser útil para diretórios de grupos compartilhados.
Sem bits fixos, se um usuário puder criar arquivos em um diretório, ele também poderá excluir arquivos desse diretório. Em um ambiente de grupo público, isso pode ser irritante. Imagine os usuários linda e lori, que têm permissões de gravação no diretório / data / account e recebem essas permissões através da associação ao grupo de contas. Portanto, linda pode excluir arquivos criados por lori e vice-versa.
Quando você usa bits fixos, o usuário pode excluir arquivos apenas se uma das seguintes condições for verdadeira:
- O usuário é o proprietário do arquivo;
- O usuário é o proprietário do diretório em que o arquivo está localizado.
Ao usar
ls -ld , você pode ver bits pegajosos como
t na posição em que geralmente vê permissão de execução para outras pessoas:
[root@hnl data]
Direitos aprimorados
Para aplicar SUID, SGID e bit pegajoso, você também pode usar o
chmod . SUID tem um valor numérico de 4, SGID tem um valor numérico de 2 e bit pegajoso tem um valor numérico de 1.
Se você deseja aplicar essas permissões, precisará adicionar um argumento de quatro dígitos ao
chmod , cujo primeiro dígito se refere a permissões especiais. A seguinte linha, por exemplo, adicionará permissão SGID ao diretório e configurará rwx para o usuário e rx para o grupo e outros:
chmod 2755 /somedir
Isso é bastante impraticável se você precisar examinar as permissões atuais definidas antes de trabalhar com o
chmod no modo absoluto. (Você corre o risco de sobrescrever permissões, se não o fizer.) Portanto, recomendo trabalhar no modo relativo, se você precisar aplicar alguma das permissões especiais:
- Para SUID, use chmod u + s .
- Para SGID, use chmod g + s .
- Para bits persistentes, use chmod + te, em seguida, o nome do arquivo ou diretório para o qual você deseja definir permissões.
A tabela resume tudo o que é importante saber sobre o gerenciamento de permissões especiais.

Exemplo de trabalho com direitos especiais
Neste exemplo, você usa permissões especiais para tornar mais fácil para os membros da equipe compartilhar arquivos em um diretório de grupo compartilhado. Você atribui o ID-bit do identificador de grupo definido, bem como o sticky bit, e vê que, após a instalação, são adicionadas funções que facilitam o trabalho conjunto dos membros do grupo.
- Abra o terminal onde você é um usuário linda. Você pode criar um usuário usando useradd linda , adicione a senha passwd linda .
- Crie um diretório / data e um subdiretório / data / sales na raiz com o comando mkdir -p / data / sales . Execute cd / data / sales para ir para o diretório de vendas. Execute toque linda1 e toque linda2 para criar dois arquivos vazios de propriedade de linda.
- Execute su - lisa para alternar o usuário atual para lisa, que também é membro do grupo de vendas.
- Execute cd / data / sales e, nesse diretório, execute ls -l . Você verá dois arquivos que foram criados por linda e pertencem ao grupo linda. Execute rm -f linda * . Isso excluirá os dois arquivos.
- Execute o toque lisa1 e toque em lisa2 para criar dois arquivos que pertencem ao usuário lisa.
- Execute su - para elevar seus privilégios ao nível raiz.
- Execute chmod g + s, o + t / data / sales para definir o GUID (bit de identificador de grupo) e o bit persistente no diretório do grupo compartilhado.
- Execute su - linda . Em seguida, toque em linda3 e toque em linda4 . Agora você deve ver que os dois arquivos criados pertencem ao grupo de vendas, que é o proprietário do grupo de diretórios / data / sales.
- Execute rm -rf lisa * . O Sticky Bit impede que esses arquivos sejam excluídos em nome de linda, pois você não os possui. Observe que se linda é o proprietário do diretório / data / sales, ele pode excluir esses arquivos de qualquer maneira!
Gerenciando ACLs (setfacl, getfacl) no Linux
Mesmo se os direitos estendidos discutidos acima adicionarem funcionalidade útil à maneira como o Linux trabalha com permissões, isso não permite conceder permissões a mais de um usuário ou um grupo em um único arquivo.As listas de controle de acesso oferecem esse recurso. Além disso, eles permitem que os administradores definam permissões padrão de uma maneira complexa, na qual as permissões definidas podem variar em diretórios diferentes.Noções básicas sobre ACLs
Embora o subsistema ACL adicione grande funcionalidade ao seu servidor, ele tem uma desvantagem: nem todos os utilitários o suportam. Portanto, você pode perder as configurações da ACL ao copiar ou mover arquivos, e o software de backup pode não fazer backup das configurações da ACL.O utilitário tar não suporta ACLs. Para garantir que as configurações da ACL não sejam perdidas ao fazer backup, use star em vez de tar. star trabalha com os mesmos parâmetros que o tar; apenas adiciona suporte para configurações de ACL.Você também pode fazer backup da ACL usando getfacl , que pode ser restaurado usando o comando setfacl. Para criar um backup, usegetfacl -R / directory> file.acls . Para restaurar as configurações do arquivo de backup, use setfacl --restore = file.acl .A falta de suporte com algumas ferramentas não deve ser um problema. As ACLs geralmente são aplicadas aos diretórios como uma medida estrutural, e não a arquivos individuais.Portanto, não haverá muitos, mas apenas alguns, aplicados em locais inteligentes do sistema de arquivos. Portanto, a restauração das ACLs originais com as quais você trabalhou é relativamente fácil, mesmo que o seu software de backup não as suporte.Preparando o sistema de arquivos para uma ACL
Antes de começar a trabalhar com ACLs, pode ser necessário preparar um sistema de arquivos para suportar ACLs. Como os metadados do sistema de arquivos precisam ser expandidos, nem sempre há suporte padrão para ACLs no sistema de arquivos. Se você receber a mensagem "operação não suportada" ao configurar ACLs para o sistema de arquivos, seu sistema de arquivos pode não ter suporte a ACL.Para corrigir isso, você precisa adicionar a opção de montagem acl no arquivo / etc / fstab para que o sistema de arquivos seja montado com suporte a ACL por padrão.Altere e visualize as configurações da ACL com setfacl e getfacl
Para definir a ACL, você precisa do comando setfacl . Para ver as configurações atuais da ACL, você precisa do getfacl . O comando ls -l não mostra nenhuma ACL existente; simplesmente mostra + após a lista de permissões, o que indica que as ACLs também se aplicam ao arquivo.Antes de configurar as ACLs, é sempre útil mostrar as configurações atuais da ACL usando getfacl . Abaixo, com um exemplo, você pode ver as permissões atuais, como mostrado com ls -ld , assim como com getfacl . Se você olhar com bastante atenção, verá que as informações mostradas são exatamente as mesmas. [root@server1 /]
Como resultado do comando getfacl , você pode ver abaixo que as permissões são mostradas para três objetos diferentes: usuário, grupo e outros. Agora vamos adicionar uma ACL para conceder permissões de leitura e execução ao grupo de vendas. O comando para isso é setfacl -mg: sales: rx / dir . Nesse comando, -m indica que as configurações atuais da ACL devem ser alteradas. Depois disso, g: sales: rx diz à equipe para configurar a ACL para ler e executar ( rx ) as vendas do grupo ( g ). Abaixo, você pode ver a aparência do comando, bem como a saída do comando getfacl após alterar as configurações atuais da ACL. [root@server1 /]
Agora que você entende como configurar uma ACL de grupo, é fácil entender a ACL para usuários e outros usuários. Por exemplo, o comando setfacl -mu: linda: rwx / data concede permissões ao usuário linda no diretório / data, sem torná-lo o proprietário e sem alterar o destino do proprietário atual.O comando setfacl possui muitos recursos e opções. Uma opção é especialmente importante, a opção -R . Se usada, esta opção configura a ACL para todos os arquivos e subdiretórios existentes no diretório em que você instala a ACL. É recomendável que você sempre use essa opção ao modificar ACLs para diretórios existentes.Trabalhar com ACLs padrão
Um dos benefícios do uso de ACLs é que você pode conceder permissões para vários usuários ou grupos em um diretório. Outra vantagem é que você pode habilitar a herança trabalhando com a ACL padrão.Ao definir a ACL padrão, você define as permissões que serão definidas para todos os novos itens criados no diretório. Lembre-se de que a ACL padrão não altera as permissões para arquivos e subdiretórios existentes. Para alterá-los, você precisa adicionar uma ACL regular!Isso é importante saber. Se você deseja usar a ACL para configurar o acesso de vários usuários ou grupos ao mesmo diretório, defina a ACL duas vezes. Primeiro, use setfacl -R -m para alterar a ACL dos arquivos atuais. Então usesetfacl -md: para cuidar de todos os novos elementos que também serão criados.Para definir a ACL padrão, basta adicionar a opção d após a opção -m (o pedido é importante!). Portanto, use setfacl -md: g: sales: rx / data se desejar que o grupo de vendas tenha acesso de leitura e execução a qualquer coisa que será criada no diretório / data.Ao usar ACLs padrão, também pode ser útil definir ACLs para outras pessoas. Isso geralmente não faz muito sentido, porque você também pode alterar as permissões para outras pessoas usando o chmod . No entanto, o que você não pode fazer com o chmod, isso indica os direitos que devem ser concedidos a outros usuários para cada novo arquivo que será criado. Se você quiser que outros não obtenham permissões para qualquer coisa criada em / data, por exemplo, use setfacl -md: o :: - / data .ACLs e permissões regulares nem sempre são bem integradas. Podem ocorrer problemas se você aplicar a ACL padrão a um diretório, após o qual os itens foram adicionados a esse diretório e, em seguida, tentar alterar as permissões normais. As alterações que se aplicam às permissões regulares não serão bem refletidas na visão geral da ACL. Para evitar problemas, primeiro defina as permissões normais, depois defina as ACLs padrão (e tente não alterá-las novamente).Exemplo de gerenciamento avançado de direitos usando ACLs
Neste exemplo, você continuará trabalhando com os diretórios / data / account e / data / sales que você criou anteriormente. Nos exemplos anteriores, você garantiu que o grupo de vendas possui permissões para / data / sales e o grupo de contas possui permissões para / data / account.Primeiro, verifique se o grupo de contas obtém permissões de leitura no diretório / data / account e o grupo de vendas obtém permissões de leitura no diretório / data / account.Em seguida, defina as ACLs padrão para garantir que todos os novos arquivos tenham permissões definidas corretamente para todos os novos itens.- Abra um terminal.
- Execute setfacl -mg: account: rx / data / sales e setfacl -mg: sales: rx / data / account .
- getfacl , , , .
- setfacl -md:g:account:rwx,g:sales:rx /data/sales , ACL sales.
- ACL /data/account, setfacl -md:g:sales:rwx,g:account:rx /data/account .
- , ACL , /data/sales. touch /data/sales/newfile getfacl /data/sales/newfile .
umask
Acima, você aprendeu como trabalhar com ACLs por padrão. Se você não estiver usando uma ACL, há um parâmetro de shell que define os direitos padrão que você receberá: umask (máscara reversa). Nesta seção, você aprenderá como alterar as permissões padrão usando umask .Você provavelmente percebeu que quando você cria um novo arquivo, algumas permissões padrão são definidas. Essas permissões são determinadas pela configuração umask . Esta opção de shell se aplica a todos os usuários no logon. O parâmetro umask usa um valor numérico que é subtraído das permissões máximas que podem ser definidas automaticamente para o arquivo; a configuração máxima para arquivos é 666 e para diretórios - 777.No entanto, algumas exceções se aplicam a esta regra. Você pode encontrar uma visão geral completa das configurações do umask na tabela abaixo.Dos dígitos usados em umask , como no caso de argumentos numéricos para o comando chmod , o primeiro dígito refere-se às permissões do usuário, o segundo dígito refere-se às permissões do grupo e o último refere-se às permissões padrão definidas para outros. O valor padrão umask de 022 fornece 644 para todos os novos arquivos e 755 para todos os novos diretórios criados em seu servidor.Uma visão geral completa de todos os valores numéricos umask e seus resultados na tabela abaixo.
Uma maneira fácil de ver como o parâmetro umask funciona é o seguinte: comece com as permissões padrão para o arquivo definido como 666 e subtraia umask para obter permissões válidas. Faça o mesmo para o diretório e suas permissões padrão 777.Há duas maneiras de alterar a configuração do umask: para todos os usuários e para usuários individuais. Se você deseja instalar umask para todos os usuários, certifique-se de que a opção umask seja levada em consideração ao executar arquivos de ambiente shell, conforme especificado em / etc / profile. A abordagem correta é criar um script de shell chamado umask.sh no diretório /etc/profile.d e especificar o umask que você deseja usar neste script de shell. Se umask for alterada neste arquivo, ela será aplicada a todos os usuários após o login no servidor.Uma alternativa para configurar umask por meio de / etc / profile e arquivos relacionados, onde é aplicada a todos os usuários no sistema, é alterar as configurações de umask em um arquivo chamado .profile, criado no diretório inicial de cada usuário.As configurações aplicadas neste arquivo são aplicadas apenas a um usuário individual; portanto, esse é um bom método se você precisar de mais detalhes. Pessoalmente, gosto desse recurso para alterar o valor padrão umask do usuário raiz para 027, enquanto usuários regulares trabalham com o padrão umask 022.Trabalhando com Atributos Avançados do Usuário
Esta é a seção final sobre direitos do Linux.Ao trabalhar com permissões, sempre há um relacionamento entre um objeto de usuário ou grupo e as permissões que esses objetos de usuário ou grupo têm para o arquivo ou diretório. Um método alternativo de proteger arquivos em um servidor Linux é trabalhar com atributos.Os atributos fazem seu trabalho, independentemente do usuário que acessa o arquivo.Como nas ACLs, os atributos do arquivo podem precisar incluir a opção de montagem .Esta é a opção user_xattr . Se você receber uma mensagem "operação não suportada" ao trabalhar com atributos avançados do usuário, certifique-se de definir o parâmetro mount no arquivo / etc / fstab.Muitos atributos estão documentados. Alguns atributos estão disponíveis, mas ainda não foram implementados. Não os use; eles não vão te trazer nada.A seguir, estão os atributos mais úteis que você pode aplicar:A Este atributo garante que o tempo de acesso ao arquivo do arquivo não seja alterado.Geralmente, sempre que um arquivo é aberto, o tempo de acesso ao arquivo deve ser gravado nos metadados do arquivo. Isso afeta negativamente o desempenho; portanto, para arquivos que são acessados regularmente, o atributo A pode ser usado para desativar esse recurso.a Este atributo permite adicionar, mas não excluir, um arquivo.cSe você usar um sistema de arquivos que suporte a compactação no nível do volume, esse atributo do arquivo garantirá que o arquivo será compactado na primeira vez que o mecanismo de compactação for ativado.D Este atributo garante que as alterações nos arquivos sejam gravadas no disco imediatamente e não sejam armazenadas em cache em primeiro lugar. Esse é um atributo útil em arquivos importantes do banco de dados, garantindo que eles não sejam perdidos entre o cache do arquivo e o disco rígido.d Este atributo garante que o arquivo não seja salvo nos backups em que o utilitário de despejo é usado.EuEste atributo permite a indexação para o diretório em que está incluído. Isso fornece acesso mais rápido a arquivos para sistemas de arquivos primitivos, como o Ext3, que não usam o banco de dados B-tree para acesso rápido a arquivos.i Este atributo torna o arquivo inalterado. Portanto, você não pode fazer alterações no arquivo, o que é útil para arquivos que precisam de proteção adicional.j Este atributo garante que, no sistema de arquivos ext3, o arquivo seja gravado primeiro no log e depois nos blocos de dados no disco rígido.s Substitua os blocos nos quais o arquivo foi salvo por 0 s após a exclusão do arquivo. Isso garante que a recuperação do arquivo não seja possível após a exclusão.vcEste atributo armazena informações de exclusão. Isso permite que você desenvolva um utilitário que funciona com essas informações para salvar arquivos excluídos.Se você deseja aplicar atributos, pode usar o comando chattr . Por exemplo, use o arquivo de chattr + s para aplicar atributos a algum arquivo. Precisa remover um atributo? Em seguida, use chattr -s somefile e ele será excluído. Para obter uma visão geral de todos os atributos usados atualmente, use o comando lsattr .Sumário
Neste artigo, você aprendeu como trabalhar com permissões. Você lê sobre três permissões básicas, permissões avançadas e como aplicar ACLs ao sistema de arquivos. Você também aprendeu como usar o parâmetro umask para aplicar permissões padrão. No final deste artigo, você aprendeu como usar atributos avançados do usuário para aplicar uma camada adicional de segurança do sistema de arquivos.Se você gostou desta tradução, por favor escreva sobre ela nos comentários. Haverá mais motivação para fazer traduções úteis.. .
« - .» « - .», .
berez .
:
, , , .
:
, , , . , , , .
CryptoPirate