Comando umask - Permissões padrão de arquivos e diretórios no Linux
Índice:
Nos sistemas operacionais Linux e Unix, todos os novos arquivos são criados com um conjunto de permissões padrão. O utilitário
umask
permite exibir ou definir a máscara de criação do modo de arquivo, que determina os bits de permissão para os arquivos ou diretórios criados recentemente.
É usado pelo mkdir, touch, tee e outros comandos que criam novos arquivos e diretórios.
Permissões do Linux
Antes de prosseguir, vamos explicar em breve o modelo de permissões do Linux.
No Linux, cada arquivo é associado a um proprietário e um grupo e atribuído com direitos de acesso de permissão para três classes diferentes de usuários:
- o proprietário do arquivo. os membros do grupo.
Existem três tipos de permissões que se aplicam a cada classe:
- a permissão de leitura. a permissão de gravação. a permissão de execução.
Esse conceito permite especificar quais usuários têm permissão para ler, gravar ou executar o arquivo.
Para visualizar as permissões do arquivo, use o comando
ls
:
ls -l dirname
drwxr-xr-x 12 linuxize users 4.0K Apr 8 20:51 dirname | | | | | | | | | | | | +-----------> Group | | | | +-------------------> Owner | | | +----------------------------> Others Permissions | | +-------------------------------> Group Permissions | +----------------------------------> Owner Permissions +------------------------------------> File Type
O primeiro caractere representa o tipo de arquivo que pode ser arquivo regular (
-
), diretório (
d
), link simbólico (
l
) ou qualquer outro tipo especial de arquivo.
Os próximos nove caracteres representam as permissões, três conjuntos de três caracteres cada. Os primeiros conjuntos mostram as permissões de proprietário, o segundo grupo de permissões e o último conjunto mostra as permissões de todos os outros.
O caractere
r
com um valor octal de
4
significa leitura,
w
com um valor octal de
2
para gravação,
x
com um valor octal de
1
para permissão de execução e (
-
) com valor octal de
0
para nenhuma permissão.
Existem também outros três tipos especiais de permissões de arquivo:
setuid
,
setgid
e
Sticky Bit
.
No exemplo acima (
rwxr-xr-x
) significa que o proprietário possui permissões de leitura, gravação e execução (
rwx
), o grupo e outras pessoas têm permissões de leitura e execução.
Se representarmos as permissões de arquivo usando uma notação numérica, chegaremos ao número
755
:
- Proprietário:
rwx=4+2+1 = 7Grupo:rx=4+0+1 = 5Outros:rx=4+0+1 = 5
Quando representadas em notação numérica, as permissões podem ter três ou quatro dígitos octais (0 a 7). O primeiro dígito representa as permissões especiais e, se for omitido, significa que nenhuma permissão especial está definida no arquivo. No nosso caso,
755
é o mesmo que
0755
. O primeiro dígito pode ser uma combinação de
4
para
setuid
,
2
para
setgid
e
1
para
Sticky Bit
.
As permissões de arquivo podem ser alteradas usando o comando
chmod
e a propriedade usando o comando
chown
.
Compreendendo umask
Por padrão, nos sistemas Linux, as permissões de criação padrão são
666
para arquivos, o que concede permissão de leitura e gravação ao usuário, grupo e outros e
777
para diretórios, o que significa permissão de leitura, gravação e execução ao usuário, grupo e outras. O Linux não permite que um arquivo seja criado com permissões de execução.
As permissões de criação padrão podem ser modificadas usando o utilitário
umask
.
umask
afeta apenas o ambiente atual do shell. Na maioria das distribuições Linux, o valor padrão umask para todo o sistema é definido no
pam_umask.so
ou
/etc/profile
.
Para visualizar o valor atual da máscara, basta digitar
umask
sem argumentos:
umask
A saída incluirá o
022
O valor
umask
contém os bits de permissão que NÃO serão definidos nos arquivos e diretórios criados recentemente.
Como já mencionamos, as permissões de criação padrão para arquivos são
666
e para diretórios
777
. Para calcular os bits de permissão dos novos arquivos, subtraia o valor umask do valor padrão.
Por exemplo, para calcular como o
uname 022
afetará arquivos e diretórios criados recentemente, use:
- Arquivos:
666 - 022 = 644. O proprietário pode ler e modificar os arquivos. O grupo e outros só podem ler os arquivos. Diretórios:777 - 022 = 755O proprietário pode entrar no diretório e listar a leitura, modificação, criação ou exclusão dos arquivos no diretório. O grupo e outros podem entrar no diretório, listar e ler os arquivos.
Você também pode exibir o valor da máscara em notação simbólica usando a opção
-S
:
umask -S
u=rwx, g=rx, o=rx
Diferente da notação numérica, o valor da notação simbólica contém os bits de permissão que serão definidos nos arquivos e diretórios criados recentemente.
Configurando o valor da máscara
A máscara de criação de arquivo pode ser definida usando notação octal ou simbólica. Para tornar as alterações permanentes, defina o novo valor
umask
em um arquivo de configuração global como
/etc/profile
que afetará todos os usuários ou nos arquivos de configuração de shell do usuário, como
~/.profile
,
~/.bashrc
ou
~/.zshrc
que afetará apenas o usuário. Os arquivos do usuário têm precedência sobre os arquivos globais.
Antes de fazer alterações no valor
umask
verifique se o novo valor não representa um risco potencial à segurança. Valores menos restritivos que
022
devem ser usados com muito cuidado. Por exemplo,
umask 000
significa que qualquer pessoa terá permissão de leitura, gravação e execução para todos os arquivos recém-criados.
Digamos que desejamos definir permissões mais restritivas para os arquivos e diretórios criados recentemente, para que outras pessoas não consigam fazer o
cd
para os diretórios e ler os arquivos. As permissões que queremos são
750
para diretórios e
640
para arquivos.
Para calcular o valor
umask
basta subtrair as permissões desejadas da padrão:
Valor do Umask:
777-750 = 027
O valor
umask
desejado representado na notação numérica é
027
.
Para definir permanentemente o novo valor em todo o sistema, abra o arquivo
/etc/profile
com seu editor de texto:
sudo nano /etc/profile
e altere ou adicione a seguinte linha no início do arquivo:
/ etc / profile
umask 027
Para que as alterações entrem em vigor, execute o seguinte comando ou logout de origem e efetue login:
source /etc/profile
Para verificar as novas configurações, criaremos um novo arquivo e diretório usando o
mkdir
e
touch
:
mkdir newdir
touch newfile
drwxr-x--- 2 linuxize users 4096 Jul 4 18:14 newdir -rw-r----- 1 linuxize users 0 Jul 4 18:14 newfile
Outra maneira de definir a máscara de criação de arquivo é usando a notação simbólica. Por exemplo
umask u=rwx, g=rx, o=
é o mesmo que
umask 027
.
Conclusão
Neste guia, explicamos as permissões do Linux e como usar o comando
umask
para definir os bits de permissão para arquivos ou diretórios criados recentemente.
Para mais informações, digite
man umask
no seu terminal.
A Dell busca expandir sua oferta no Linux Para expandir suas ofertas no Linux, a Dell está pesquisando novos dispositivos do tipo netbook e em breve oferecerá atualizações do sistema operacional Linux Em um esforço para expandir suas ofertas de Linux, a Dell está pesquisando novos dispositivos do tipo netbook e em breve oferecerá atualizações de netbooks para o Linux, disse uma autoridade da empresa na quarta-feira. A empresa está pesquisando a possibilidade de oferecer novos produtos Linux. bas
Smartbooks são dispositivos do tipo netbook que são alimentados por chips projetados pela Arm. Os dispositivos suportam principalmente o sistema operacional Linux e são projetados para aqueles que dependem da Web para a maior parte de sua computação. A Dell não pôde dizer se ofereceria um livro inteligente.
Aproveite a linha de comando com o comando Take
Integre o prompt de comando, a GUI e uma poderosa linguagem de lote com o potente kit de ferramentas Take Command. > Você não adora quando procura um programa que precisa para executar uma função, encontrá-la e depois descobrir que ela faz muito mais? Eu encontrei o Take Command ($ 100, 30 dias de teste gratuito) depois de ter sido frustrado com a linha de comando ruim no Windows. Eu descobri que isso me deu o que eu queria, e muitas coisas que eu não sabia que queria - mas agora eu definitivame
Comando Chmod no linux (permissões de arquivo)
No Linux, o acesso aos arquivos é gerenciado através das permissões, atributos e propriedade do arquivo. Este tutorial aborda como usar o comando chmod para alterar as permissões de acesso de arquivos e diretórios.







