Skip to main content
2 of 5
added 11 characters in body
klanomath
  • 67k
  • 10
  • 135
  • 204

By adjusting the sudoers file (/etc/sudoers) with sudo visudo it should be possible to accomplish this. It is a hell of a job and you need a profound knowledge of all commands to fine-tune this while avoiding errors and loopholes though.

You have to add the user to the User privilege specification section

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

Then use a whitelist (or a blacklist) of allowed (or disallowed) commands:

whitelist:

# User privilege specification
root    ALL=(ALL) ALL
%admin  ALL=(ALL) ALL
user    ALL=/usr/bin/nano,/usr/bin/opensnoop

blacklist:

# User privilege specification
root    ALL=(ALL) ALL
%admin  ALL=(ALL) ALL
user    ALL=!/usr/libexec/PlistBuddy,!/usr/bin/passwd,!/usr/sbin/*

You may mix whitelist and blacklist.

Please check man sudoers how to simplify things or narrow things down by configuring User, Runas, Host and Cmnd alias specifications.

klanomath
  • 67k
  • 10
  • 135
  • 204