Definir um umask personalizado no macOS

Todos os ficheiros e pastas do Mac possuem um conjunto de permissões. Ao criar um novo ficheiro ou pasta, o umask determina estas permissões.

Estes passos avançados destinam-se principalmente a administradores de sistema e a utilizadores familiarizados com a linha de comandos. Tenha cuidado quando alterar permissões de ficheiros e umasks. Se se enganar, pode baixar o nível de segurança dos ficheiros, pastas ou apps no Mac, ou impedir que as apps funcionem.

Acerca de permissões e umasks

Permissões. Todos os ficheiros, pastas e apps armazenados no Mac possuem definições de permissão, que determinam as contas de utilizador que podem ler, escrever ou executar os ficheiros, pastas ou apps. Estas incluem permissões POSIX e listas de controlo de acesso (ACLs). Para tornar as permissões POSIX de um utilizador mais ou menos restritivas, pode ajustar o valor de umask.

Umasks. Um número de três dígitos pode representar as permissões POSIX para um ficheiro. Pode ver as permissões representadas desta forma quando as visualiza a partir do Terminal. Cada dígito é entre 0 e 7. Quando cria um ficheiro, o valor de umask é subtraído de um valor predefinido (normalmente 666 para ficheiros e 777 para pastas) to determinar as permissões para o novo ficheiro ou pasta. Por exemplo, um umask predefinido de 022 define permissões de 644 em novos ficheiros e 755 em novas pastas. 

Pode definir o umask em várias localizações e cada localização afeta apps diferentes. Se definir um umask incorretamente, poderá perder o acesso aos ficheiros ou conceder acesso a outros utilizadores. Consulte a secção MODES da página do manual chmod(1) para obter mais informações.

Umask para apps de utilizador

Inicie sessão como administrador e introduza o comando seguinte no Terminal, substituindo nnn pelo valor de umask, como 027 ou 002. Este comando define o umask do utilizador para cada app que abrir, incluindo as apps a que acede a partir da linha de comandos e os novos ficheiros criados por essas apps. Após a introdução deste comando, poderá ter de reiniciar o Mac. 

sudo launchctl config user umask nnn

Se o Terminal responder "Não foi possível escrever a configuração: ficheiro ou diretório inexistente", certifique-se de que o disco de arranque possui uma pasta em /private/var/db/com.apple.xpc.launchd/config. Se a pasta de configuração não existir, tente novamente após introduzir o comando seguinte para a criar:

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

Umask para processos do sistema

Inicie sessão como administrador e introduza o comando seguinte no Terminal, substituindo nnn pelo valor de umask, como 027 ou 002. Este comando define o umask do utilizador para cada daemon executado no contexto do sistema. Esta ação não é recomendada, pois pode alterar as permissões para ficheiros utilizados pelo sistema. As permissões demasiado restritivas podem impedir que o software funcione e as permissões demasiado abertas podem introduzir problemas de segurança. Após a introdução deste comando, poderá ter de reiniciar o Mac. 

sudo launchctl config system umask nnn

Se o Terminal responder "Não foi possível escrever a configuração: ficheiro ou diretório inexistente", certifique-se de que o disco de arranque possui uma pasta em /private/var/db/com.apple.xpc.launchd/config. Se a pasta de configuração não existir, tente novamente após introduzir o comando seguinte para a criar:

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

Saiba mais

Para obter mais informações sobre como definir um umask, introduza man launchctl no Terminal.

Data de publicação: