Trying to run this compand in terminal:
sudo chown -R yourid:yourgroup local
However, I have no idea what my ID and my group are, or where to find them. Any ideas?
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.Sign up to join this community
On OS X, your primary group is always
staff unless you or your user directory manager changed it.
What's a primary group? The primary group of a user is by default the owner of all files created by that user.
For the purposes of
chmod on your computer, you can use either your numeric user ID (e.g. 501), or your account name (e.g.
danielbeck). The latter is different from the user name you usually see in the UI (e.g. Daniel Beck).
You can determine your account name using any of the following:
It's the name of your home directory (unless you customized it) in Finder's title or side bar
whoami in Terminal – so a
chown -R $(whoami):staff should suffice. You can also get your primary group with
groups $(whoami) | cut -d' ' -f1.
Open System Preferences » Users & Groups, unlock the pane if necessary, right-click your user name (the single list entry in the Current User section), and select Advanced Options…. It's the field Account Name in the newly opened dialog window. This dialog also shows you your primary group.
id in Terminal for more verbose output. This will include your numeric user ID. It'll also list all groups you're a member of, not just your primary group. The first group is the primary one.
This will show your userid.
$ id -u 502
This will show your group names. The group names are inside parentheses.
$ id uid=502(whoami) gid=20(staff) groups=20(staff),702(com.apple.sharepoint.group.2),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),33(_appstore),100(_lpoperator),204(_developer),395(com.apple.access_ftp),398(com.apple.access_screensharing),399(com.apple.access_ssh)
Would only comment if I could. I don't have enough karma on this site.
I have no idea why someone downvoted @callaginn, as he brings up a valid point.
The following methods are valid (and probably the best options for shell scripting):
id -u # returns UID id -un # returns username id -g # returns primary (a.k.a. effictive) GID id -gn # returns primary Group Name
man id for more options.
To answer this specific question if I was writing a script that would work in any environment, I wouldn't assume that the default group
staff is in use and instead I would do the following if I was writing a script that could be run for any user (whether or not they modified their system):
chown "$(id -un):$(id -gn)" some_file
It's always better to be platform agnostic whenever possible (if it's not too much of a time tradeoff), as you will incur less technical debt later.
Please note that
-R flag should be used with the utmost confidence. You could really mess up your system (Although it is worth noting that Apple made it hard to do since they implemented
System Integrity Protection).
Consider, for instance, if you were to
chown -R 755 /var instead of
chown -R 755 /var/www as root with
System Integrity Protection disabled I believe that you would be in for it. I can't tell you what would break first, but it would break first on a Darwin system, but please take my word that it wouldn't be pretty.
Hopefully, someone finds this helpful.