Capítulo 10. Gerenciamento de permissões de arquivos

10.1. Introdução às permissões de arquivo

Cada arquivo ou diretório tem três níveis de propriedade:

  • Proprietário do usuário (u).
  • Proprietário do grupo (g).
  • Outros (o).

A cada nível de propriedade podem ser atribuídas as seguintes permissões:

  • Leia (r).
  • Escreva (w).
  • Executar (x).

Note que a permissão de execução de um arquivo permite que você execute esse arquivo. A permissão de execução de um diretório permite que você acesse o conteúdo do diretório, mas não o execute.

Quando um novo arquivo ou diretório é criado, o conjunto padrão de permissão é automaticamente atribuído a ele. A permissão padrão para um arquivo ou diretório é baseada em dois fatores:

  • Permissão de base.
  • O user file-creation mode mask (umask).

10.1.1. Permissões de base

Sempre que um novo arquivo ou diretório é criado, uma permissão de base é automaticamente atribuída a ele.

As permissões básicas para um arquivo ou diretório podem ser expressas nos valores symbolic ou octal.

Permission

Symbolic value

Octal value

Sem permissão

---

0

Executar

--x

1

Escreva para

-w-

2

Escrever e executar

-wx

3

Leia

r--

4

Ler e executar

r-x

5

Ler e escrever

rw-

6

Ler, escrever, executar

rwx

7

A permissão básica para um diretório é 777 (drwxrwxrwx), que concede a todos as permissões para ler, escrever e executar. Isto significa que o proprietário do diretório, o grupo e outros podem listar o conteúdo do diretório, criar, apagar e editar itens dentro do diretório e descer até ele.

Note que arquivos individuais dentro de um diretório podem ter sua própria permissão que pode impedi-lo de editá-los, apesar de ter acesso irrestrito ao diretório.

A permissão básica para um arquivo é 666 (-rw-rw-rw-), que concede a todos as permissões de leitura e escrita. Isto significa que o proprietário do arquivo, o grupo e outros podem ler e editar o arquivo.

Exemplo 1

Se um arquivo tiver as seguintes permissões:

$ ls -l
-rwxrw----. 1 sysadmins sysadmins 2 Mar 2 08:43 file
  • - indica que se trata de um arquivo.
  • rwx indica que o proprietário do arquivo tem permissões para ler, escrever e executar o arquivo.
  • rw- indica que o grupo tem permissões para ler e escrever, mas não para executar o arquivo.
  • --- indica que outros usuários não têm permissão para ler, escrever, ou executar o arquivo.
  • . indica que o contexto de segurança da SELinux está definido para o arquivo.

Exemplo 2

Se um diretório tem as seguintes permissões:

$ ls -dl directory
drwxr-----. 1 sysadmins sysadmins 2 Mar 2 08:43 directory
  • d indica que se trata de um diretório.
  • rwx indica que o proprietário do diretório tem as permissões para ler, escrever e acessar o conteúdo do diretório.

    Como proprietário de um diretório, você pode listar os itens (arquivos, subdiretórios) dentro do diretório, acessar o conteúdo desses itens, e modificá-los.

  • r-- indica que o grupo tem permissões para ler, mas não para escrever ou acessar o conteúdo do diretório.

    Como membro do grupo que possui o diretório, você pode listar os itens dentro do diretório. Você não pode acessar informações sobre os itens dentro do diretório ou modificá-los.

  • --- indica que outros usuários não têm permissão para ler, escrever, ou acessar o conteúdo do diretório.

    Como alguém que não é proprietário do usuário, ou como proprietário do grupo do diretório, você não pode listar os itens dentro do diretório, acessar informações sobre esses itens, ou modificá-los.

  • . indica que o contexto de segurança da SELinux está definido para o diretório.
Nota

A permissão básica que é automaticamente atribuída a um arquivo ou diretório é not a permissão padrão que o arquivo ou diretório acaba por ter. Quando você cria um arquivo ou diretório, a permissão base é alterada pelo site umask. A combinação da permissão base e o umask cria a permissão padrão para arquivos e diretórios.

10.1.2. Máscara de modo de criação de arquivo de usuário

O umask é uma variável que remove automaticamente as permissões do valor da permissão base sempre que um arquivo ou diretório é criado para aumentar a segurança geral de um sistema linux.

O umask pode ser expresso em symbolic ou octal.

Permission

Symbolic value

Octal value

Ler, escrever e executar

rwx

0

Ler e escrever

rw-

1

Ler e executar

r-x

2

Leia

r--

3

Escrever e executar

-wx

4

Escreva para

-w-

5

Executar

--x

6

Sem permissões

---

7

O padrão umask para um usuário padrão é 0002. O padrão umask para um usuário root é 0022.

O primeiro dígito do umask representa permissões especiais (sticky bit, ). Os três últimos dígitos do umask representam as permissões que são removidas do proprietário do usuário (u), proprietário do grupo (g), e outros (o) respectivamente.

Exemplo

O exemplo a seguir ilustra como o umask com um valor octal de 0137 é aplicado ao arquivo com a permissão básica de 777, para criar o arquivo com a permissão padrão de 640.

Figura 10.1. Aplicando a umask ao criar um arquivo

Users Groups Umask Example

10.1.3. Permissões padrão

A permissão padrão para um novo arquivo ou diretório é determinada através da aplicação da permissão de base umask.

Exemplo 1

Quando um standard user cria um novo directory, o umask é definido para 002 (rwxrwxr-x), e a permissão básica para um diretório é definida para 777 (rwxrwxrwx). Isto traz a permissão padrão para 775 (drwxrwxr-x).

 

Symbolic value

Octal value

Base permission

rwxrwxrwxrwx

777

Umask

rwxrwxr-x

002

Default permission

rwxrwxr-x

775

Isto significa que o proprietário do diretório e o grupo podem listar o conteúdo do diretório, criar, apagar e editar itens dentro do diretório e descer até ele. Outros usuários só podem listar o conteúdo do diretório e descer para dentro dele.

Exemplo 2

Quando um standard user cria um novo file, o umask é definido para 002 (rwxrwxr-x), e a permissão básica para um arquivo é definida para 666 (rw-rw-rw-). Isto traz a permissão padrão para 664 (-rw-rw-r--).

 

Symbolic value

Octal value

Base permission

rw-rw-rw-

666

Umask

rwxrwxr-x

002

Default permission

rw-rw-r--

664

Isto significa que o proprietário do arquivo e o grupo podem ler e editar o arquivo, enquanto outros usuários só podem ler o arquivo.

Exemplo 3

Quando um root user cria um novo directory, o umask é definido para 022 (rwxr-xr-x), e a permissão básica para um diretório é definida para 777 (rwxrwxrwx). Isto traz a permissão padrão para 755 (rwxr-xr-x).

 

Symbolic value

Octal value

Base permission

rwxrwxrwxrwx

777

Umask

rwxr-xr-x

022

Default permission

rwxr-xr-x

755

Isto significa que o proprietário do diretório pode listar o conteúdo do diretório, criar, apagar e editar itens dentro do diretório, e descer até ele. O grupo e outros só podem listar o conteúdo do diretório e descer para dentro dele.

Exemplo 4

Quando um root user cria um novo file, o umask é definido para 022 (rwxr-xr-x), e a permissão básica para um arquivo é definida para 666 (rw-rw-rw-). Isto traz a permissão padrão para 644 (-rw-r—​r--).

 

Symbolic value

Octal value

Base permission

rw-rw-rw-

666

Umask

rwxr-xr-x

022

Default permission

rw-r-r--

644

Isto significa que o proprietário do arquivo pode ler e editar o arquivo, enquanto o grupo e outros só podem ler o arquivo.

Nota

Por razões de segurança, os arquivos regulares não podem ter permissões de execução por padrão, mesmo que o umask esteja configurado para 000 (rwxrwxrwx). Entretanto, os diretórios podem ser criados com permissões de execução.