Configurar uma retirada de máscara personalizada no macOS

Cada arquivo ou pasta no Mac tem um conjunto de permissões. Ao criar um arquivo ou pasta, a retirada de máscara determina esses ajustes de permissão.

Sobre permissões e retiradas de máscaras

Estas instruções são para usuários empresariais. Tenha cuidado ao alterar as retiradas de máscaras e as permissões dos arquivos. Se defini-las incorretamente, você poderá reduzir a segurança dos arquivos, pastas ou apps no Mac. Você também poderá impedir o funcionamento de alguns apps.

Permissões

Todos os arquivos, pastas e apps armazenados em um disco de inicialização do Mac ou em um volume conectado têm ajustes de permissão. As permissões determinam quais contas de usuário podem ler, gravar ou executar o arquivo, pasta ou app. Tais permissões incluem permissões POSIX e listas de controle de acesso (ACLs). 

Para deixar as permissões POSIX de um usuário mais ou menos restritivas, é possível ajustar o valor da retirada de máscara.

Retiradas de máscaras

Um número de três dígitos pode representar as permissões POSIX de um arquivo. Você pode ver as permissões representadas dessa maneira ao visualizá-las no Terminal. Cada dígito está entre o intervalo de zero a sete. Ao criar um arquivo, o valor da retirada de máscara é subtraído de um valor padrão (geralmente 666 para arquivos e 777 para pastas) para determinar as permissões do novo arquivo ou pasta.

Por exemplo, a retirada de máscara padrão de valor 022 define as permissões de 644 nos novos arquivos e 755 nas novas pastas. Essas permissões possibilitam que grupos e outros usuários leiam os arquivos e abram as pastas, mas apenas o proprietário pode fazer alterações. 

Veja se você entendeu o conceito de retirada de máscara antes de prosseguir. Se você definir uma retirada de máscara incorretamente, poderá perder o acesso aos arquivos ou conceder acesso a outros usuários de forma não intencional. Consulte a seção MODES da página do manual chmod(1) para obter mais informações.

É possível definir a retirada de máscara em vários locais diferentes. Cada local afeta apps diferentes.

Retirada de máscara para aplicativos de usuário no macOS High Sierra, macOS Sierra, OS X El Capitan e OS X Yosemite

No OS X Yosemite 10.10.3 e posterior, inicie uma sessão como administrador e execute este comando no Terminal:

sudo launchctl config user umask nnn

Substitua nnn pelo valor desejado da retirada de máscara, como 027 ou 002. Depois de executar esse comando, você precisará reiniciar o Mac.

Esse comando define a retirada de máscara do usuário para cada app que o usuário abre, como o Finder, Editor de Texto ou Final Cut Pro, e define a retirada de máscara para cada app que ele acessa pela linha de comando. Esse comando também controla as permissões que são definidas nos novos arquivos criados por esses apps.

Se a mensagem "Não foi possível gravar a configuração: não há tal arquivo ou diretório" for exibida, verifique se você tem uma pasta /private/var/db/com.apple.xpc.launchd/config. Se essa pasta não existir, use este comando para criá-la:

sudo mkdir -m 755 /private/var/db/com.apple.xpc.launchd/config

Depois de criar essa pasta, execute o comando sudo launchctl config user umask nnn novamente. Para obter mais informações sobre como configurar a retirada de máscara no OS X Yosemite, execute o comando man launchctl.

Retirada de máscara para processos do sistema no OS X Yosemite

No OS X Yosemite 10.10.3 e posterior, inicie uma sessão como administrador e execute este comando no Terminal:

sudo launchctl config system umask nnn

Substitua nnn pelo valor desejado da retirada de máscara, como 027 ou 002. Depois de executar esse comando, você precisará reiniciar o Mac.

Esse comando define a retirada de máscara do usuário para cada daemon que o usuário executa no contexto do sistema. Você não deve trocar esse valor, pois ele pode alterar as permissões dos arquivos usadas pelo software do sistema. Se você definir permissões muito restritivas, o software dependente poderá não funcionar. Se você definir permissões muito abertas, problemas de segurança poderão ser introduzidos.

Se a mensagem "Não foi possível gravar a configuração: não há tal arquivo ou diretório" for exibida, verifique se você tem uma pasta /private/var/db/com.apple.xpc.launchd/config. Se essa pasta não existir, use este comando para criá-la:

sudo mkdir -m 755 /private/var/db/com.apple.xpc.launchd/config

Para obter mais informações sobre como configurar a retirada de máscara no OS X Yosemite, execute o comando man launchctl.

Retirada de máscara para aplicativos de usuário no OS X Mavericks e anterior

No OS X Mavericks ou anterior, crie um arquivo /etc/launchd-user.conf que contenha umask nnn. Substitua nnn pelo valor desejado da retirada de máscara, como 027 ou 002. Esse comando define a retirada de máscara do usuário para cada app que o usuário abre, como o Finder, Editor de Texto ou Final Cut Pro. Ele também controla as permissões que são definidas nos novos arquivos criados por esses apps.

Se você usa o OS X Lion, atualize-o para o OS X Lion 10.7.4 ou posterior. Depois da atualização, a retirada de máscara do usuário será aplicada nos arquivos e pastas criados no Finder.

Retirada de máscara para processos do sistema no OS X Mavericks e anterior

Em versões do OS X anterior ao Yosemite, crie um arquivo /etc/launchd.conf que contenha umask nnn. Substitua nnn pelo valor desejado da retirada de máscara, como 027 ou 002. Fazer isso define a retirada de máscara de cada processo. Você não deve trocar esse valor, pois ele altera as permissões dos arquivos usadas pelo software do sistema. Se você definir permissões muito restritivas, o software dependente poderá não funcionar. Se você definir permissões muito abertas, problemas de segurança poderão ser introduzidos.

Retirada de máscara para um LaunchAgent ou LaunchDaemon específicos

No Mac OS X 10.4 e posterior, os administradores avançados podem definir uma retirada de máscara separada para um LaunchAgent ou LaunchDaemon específicos. Para fazer isso, eles adicionam um valor para a retirada de máscara ao arquivo launchd plist. Esse ajuste substitui o ajuste da retirada de máscara em /etc/launchd.conf ou /etc/launchd-user.conf somente para esse processo. Para obter mais informações sobre essa opção, execute o comando man launchd.plist.

Data da publicação: