TinkerTool GUI umask

Posted:
in macOS edited January 2014
So one of my many wishes has come true: there is now a umask equivalent for GUI apps accessable via the latest version of TinkerTool. YAY.



So here's what I want to know: Where is this setting stored in OS X?



The TinkerTool FAQ is clear that it's entirely separate from the command-line umask setting. I did a little poking around, and didn't find a where this setting is stored.

Comments

  • Reply 1 of 8
    Have you looked in NetInfo?
  • Reply 2 of 8
    TinkerTool usually just changes plist files. Check your Preferences folders and, after applying changes, sort by date modified to try to narrow down your choices.
  • Reply 3 of 8
    Quote:

    Originally posted by Brad

    TinkerTool usually just changes plist files. Check your Preferences folders and, after applying changes, sort by date modified to try to narrow down your choices.



    Thanks, that was the first thing I tried. I couldn't find the right file/setting however. It wasn't obvious at least.



    Any other suggestions?



    EDIT: To explain further: After modifying the settings using TinkerTool, I do a search using the Finder for files modified today, and then sort by Modification Date. But after doing that I only find the Library and Preferences folders as having been modified at the appropriate time: no .plist file shows up as having been modified then. I'm don't know why a .plist doesn't show up here -- it seems very strange to me -- but, in any case, this is why I haven't managed to locate the setting TinkerTool modifies.
  • Reply 4 of 8
    Quote:

    Originally posted by WJMoore

    Have you looked in NetInfo?



    Doesn't seem to be there either. Thanks for the suggestion though.
  • Reply 5 of 8
    OK, here's the answer to my question:



    The umask setting for GUI applications is located in:

    ~/Library/Preferences/.GlobalPreferences.plist



    The field is called "NSUmask" and it is a number. It does not appear to exist if you are using the default umask, disallowing write permission to Group and Others. The value of NSUmask is a sum of numbers, each indicating that a different permission is disallowed; they are:



    4 Others Read

    2 Others Write [EDIT: I made a typo here, the value is 2, not 3.]

    1 Others Execute



    32 Group Read

    16 Group Write

    8 Group Execute

    [EDIT: from here down revised.]

    256 Owner Read

    128 Owner Write

    64 Owner Execute



    These are the decimal equivalents of the standard octal permissions values.
  • Reply 6 of 8
    bartobarto Posts: 2,246member
    Can someone please explain what this "umask" thing is?
  • Reply 7 of 8
    Quote:

    Originally posted by Barto

    Can someone please explain what this "umask" thing is?



    umask is the unix default file permissions creation mask, i.e. it is a mask that specifies the permissions that newly created files CANNOT have.



    If you are familiar with chmod on the command line and how to specify permissions in the standard octal form, then umask is straightforward.



    This format for permissions is a 3 digit octal number, where the digits stand for owner, group, and others, from left to right. Each digit is a sum of some combination of 4 (read), 2 (write), and 1 (execute). So if a file had permission 644, the owner can read and write, while the group and others can only read.



    The command line umask as also a 3 digit octal number following these same rules, but it works in reverse, specifying which permissions files cannot have. So if your umask is set to 022 (a common default on many systems), then files/directories you create cannot exceed 755 permissions, i.e. any file you create will not be writeable by the group or others. A umask of 027 will prohibit the group from writing, and others from reading, writing, or executing. The command line umask is set using the umask command (see the man pages), which is usually run from the .login or .profile file when starting the shell. Of course, the umask is only the default for creating files, and once created those files can have their permissions changed with chmod; this applies to the GUI umask as well: you can always change permissions after the fact with chmod or Get Info.



    The ability to set the umask for GUI applications on a user by user basis is apparently new to Panther; perviously it was only possible to set it globally (some scripts were available to do this). The previous posts describe where and how this setting is stored. It differs from the command line umask most notably in that the value is stored in decimal, not octal. Of course, if you use TinkerTool to adjust the setting then you don't have to worry about this. Also, it should be noted that applications don't have to obey the GUI umask but can override it; however, they have to go out of their way to do so, so most apps obey it for lack of any need to do otherwise.
  • Reply 8 of 8
    bartobarto Posts: 2,246member
    Thanks, jginsbu!
Sign In or Register to comment.