Um aspecto importante da segurança de computadores é a concessão ou negação de permissões de acesso (às vezes chamado de direitos). Permissão é a capacidade de executar uma operação específica, como acesso a dados ou a execução de um código, concedidas a diretórios, arquivos e aplicativos. No OS X, as permissões são controladas pelos componentes Mach e BSD do kernel.
Você protege arquivos e diretórios, definindo permissões que restrinjam ou permitam acesso aos usuários. O OS X suporta dois métodos de permissionamento:
- POSIX (Portable Operating System Interface), padrão nos sistemas baseados em UNIX.
- ACLs (Access Control Lists), suportado pelo OS X como uma extensão do padrão POSIX — este método de permissionamento também é utilizado pelo sistema operacional Windows XP e superiores.
Permissões POSIX
A base de permissões no OS X é construída em cima do POSIX. Compartilhamento de rede, arquivo e diretório possuem atributos de leitura, gravação e execução, que podem ser definidos para proprietários (owner), grupo (group) e todos os outros (everyone).
Em POSIX, você pode atribuir quatro tipos de permissões através do Finder: Leitura & Gravação (Read & Write), Somente Leitura (Read Only), Somente Gravação (Write Only) e Nenhum (None). Estas permissões podem ser atribuídas às seguintes categorias de usuários:
- Proprietário (Owner): um usuário que cria um objeto (arquivo ou diretório) no computador se torna proprietário daquele objeto, tendo então permissões de leitura e gravação. Por padrão, o proprietário e o administrador podem modificar os privilégios de acesso de um objeto, permitindo que um grupo ou todos os outros tenha acesso sobre aquele. O administrador também pode transferir a propriedade de um objeto para outro usuário.
- Grupo (Group): você pode agrupar usuários em grupos para facilitar a gerência e o controle. No POSIX, apenas um grupo pode ser atribuído às permissões de acesso a um objeto comum.
- Todos (Everyone): neste caso, serão todos os outros usuários do sistema, exceto o proprietário e usuários que pertencem ao grupo.
Você pode usar o Finder para visualizar e modificar as permissões POSIX. Dê um Ctrl + clique sobre o objeto (arquivo ou diretório) e escolha obter informações (Get Info), ou, também selecionando o objeto e pressionando o atalho de teclado Command + I. Abra a guia compartilhamento e permissões (Sharing & Permissions) para exibir as permissões do objeto. Você pode visualizar a permissões também através do comando: ls -lah caminho
; modificar o proprietário de um objeto: chown proprietário:grupo caminho
; ou modificar as permissões de um objeto: chmod u+x caminho
.
Onde:
Quem | Ação | Permissão |
u (proprietário) g (grupo) o (outros) a (proprietário/grupo/outros) | + (adiciona permissão) – (remove permissão) = (define permissão) | r (leitura) w (gravação) x (execução) t (sticky bit) |
Permissões ACL
Considerando que o POSIX permite apenas um único proprietário e único grupo por objeto (arquivo ou diretório), para uma maior flexibilidade na configuração e gerenciamento de permissões, o OS X implementa o método de permissionamento ACLs. Uma ACL é formada por uma lista ordenada de regras chamadas ACEs. Cada ACE contém os seguintes componentes:
- Usuário: proprietário, grupo e outros.
- Ação: leitura, gravação e execução.
- Permissão: permitir ou negar uma ação.
As regras ACEs especificam permissões que concedem ou negam direitos a um grupo ou usuário. ACLs no OS X permitem que você configure permissões para vários usuários e grupos no mesmo objeto (arquivo ou diretório). Isto torna mais fácil a criação de ambientes colaborativos, sem comprometer a segurança.
Através do Finder, ao adicionar um novo usuário ou grupo a um objeto, o OS X cria esta nova entrada através do método de permissionamento ACL. Permissões ACLs no Finder são limitadas, entretanto você pode utilizar a linha de comando para criar ACEs específicas:
Visualizar as ACEs: ls -le caminho
; modificar as permissões ACLs: chmod +a "regra ace" caminho
; e apagar todas as permissões ACLs: chmod -RN caminho
Permissões ACL possuem precedência sobre permissões POSIX, assim, se não existe uma ACE correspondente com a ação solicitada, o sistema considera o POSIX. Caso exista uma ACE, ele continua lendo as regras em busca de alguma que case com a ação solicitada. Tanto em ACL quanto em POSIX, usuários possuem maior precedência sobre grupos. A tabela abaixo exemplifica esta condição apresentada:
Se houver uma ACL: | Se não corresponde a nenhuma ACE: |
|
|