How do I give a user sudo permissions?

On my computer I have two accounts: geoff and admin. I want to do gacutil.... Doing it in account geoff (where I need it to be done) I get the message:

gac directories could not be created, possibly permission issues.

When I login as admin this seems to work fine.

So I go back to the geoff account and try sudo gacutil... and putting the password for geoff but it tells me that geoff is not in the sudoers file.

So it seems that I either have to get geoff in as a sudoer (how?) or else get my admin account to do the gacutil on geoff's behalf (is this possible?).


Solution 1:

Rather than give geoff sudo privileges, consider adding the account to the admin group so that it inherits the admin group sudoer privileges. This would be the more correct way to do things.

To add geoff to the admin group you'll need to run the following as the admin account:

sudo dseditgroup -o edit -a geoff -t user admin

You may also want to consider putting geoff in the wheel group too:

sudo dseditgroup -o edit -a geoff -t user wheel

The wheel group is a BSD-ism, where OS X has its roots. In traditional BSD systems the wheel group was used to keep a collection of users who were allowed to become superusers using the su command. It's not strictly necessary to be in both admin and wheel but anyone setup as as "Administrator" on the machine through the UI for adding a user is in both so it can't hurt to replicate that setup.

Solution 2:

To add a user to sudoers, as admin do sudo visudo

Then scroll down to

# User privilege specification
root    ALL=(ALL) ALL
%admin  ALL=(ALL) ALL

place the cursor at the next (empty) line, and press a (for append). Then type

shortname   ALL=(ALL) ALL

where shortname is the short name for the user that you are adding to sudoers (there should be TAB between the short name and ALL). After that press ESC (to exit append mode). Then type :wq and then Enter to quit visudo, saving the changes.