This is a discussion on Extending sudo with capability limiting? within the Linux Security forums, part of the System Security and Security Related category; I've been reading a bit on Red Hat's PolicyKit, and it got me thinking about sudo. The article ...
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
I've been reading a bit on Red Hat's PolicyKit, and
it got me thinking about sudo. The article I read points out that if sudo decides to allow a user to run some program, it runs that program as root. This violates the principle of granting the least privilege. Linux Solaris, and other Unixes all support the breakup of rootly power into a dozen or more "capabilities" or "privileges". That is fine except it depends on the application to drop the excess privileges. So please tell me if this is a good idea, or if I'm just short of sleep and spouting nonsense: I wonder if sudo could be extended to allow an administrator to list the privileges/capabilities to be granted. The sudo process could then drop un-need privilege (all non-listed ones) before fork/exec-ing the program. That means a virus infected program run with sudo won't have excess privilege. I realize POSIX hasn't standardized a list of capabilities or privileges (maybe they could standardize the name :-), except for the withdrawn draft of 1003.1e, so the specific privileges/capabilities allowed are OS specific. To deal with that, the list could be optional in the sense that if a listed privilege/capability isn't supported, it isn't granted (silently). So a system admin could list all the Linux, Solaris, ... ones to grant, and the ones listed that don't apply to the current OS are ignored. This would still allow a single organization-wide sudoers file to be deployed on different OSes. Example sudoers entry: Joe localhost = [CAP_CHOWN, PRIV_FILE_CHOWN] /bin/chown /var/www/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^ (CAP_CHOWN is Linux/IEEE-1003.1e, PRIV_FILE_CHOWN is for Solaris.) -Wayne |