Setting the User File Creation Permission Mask on macOS

By default, files created on GNU/Linux in directories that are accessible to everyone, such as Harmony database directories, are created with a file permission mode that only allows the owner (creator) of the file and the group they belong to to modify the file.

Since a Harmony database is a collaborative work environment where everyone needs to be able to make changes to scenes, this must be circumvented by setting the permission mask for file creation (referred to as umask or user mask). By setting a permissive umask on your machine, all the files created by your client on the Harmony database will be modifiable by anyone else with access to the database.

On GNU/Linux, you can make sure the user mask is always permissive by making it permissive every time you log in. This is done by adding the command to set the user mask in a log-in script. You can choose whether to use the log-in script for all users or the one for your current user only.

In a terminal, edit the login script for all users logging in through the Bash shell with the following command:

$ sudo vi /etc/bashrc

In the script file, find the following block:

# By default, we want umask to get set. This sets it for non-login shell.# Current threshold for system reserved uid/gids is 200# You could check uidgid reservation validity in# /usr/share/doc/setup-*/uidgid fileif[$UID -gt 199 ]&&["`/usr/bin/id -gn`"="`/usr/bin/id -un`"];thenumask 002
elseumask 022
fi

In the block, replace umask 002 with umask 000:

# By default, we want umask to get set. This sets it for non-login shell.# Current threshold for system reserved uid/gids is 200# You could check uidgid reservation validity in# /usr/share/doc/setup-*/uidgid fileif[$UID -gt 199 ]&&["`/usr/bin/id -gn`"="`/usr/bin/id -un`"];thenumask 000elseumask 022
fi

Save and quit.

Create a umask script for all users logging in through a CSH shell with the following command:

$ sudo vi /etc/csh.cshrc

In the script file, find the following block:

# By default, we want this to get set.# Even for non-interactive, non-login shells.# Current threshold for system reserved uid/gids is 200# You could check uidgid reservation validity in# /usr/share/doc/setup-*/uidgid fileif($uid> 199 &&"`/usr/bin/id -gn`"=="`/usr/bin/id -un`")thenumask 002
elseumask 022
endif

In this block, replace umask 002 with umask 000:

# By default, we want this to get set.# Even for non-interactive, non-login shells.# Current threshold for system reserved uid/gids is 200# You could check uidgid reservation validity in# /usr/share/doc/setup-*/uidgid fileif($uid> 199 &&"`/usr/bin/id -gn`"=="`/usr/bin/id -un`")thenumask 000elseumask 022endif