Recipe 5.9 Prohibiting Command Arguments with sudo

5.9.1 Problem

You want to permit a command to be run via sudo, but only without command-line arguments.

5.9.2 Solution

Follow the program name with the single argument "" in /etc/sudoers:

/etc/sudoers:
smith  ALL = (root) /usr/local/bin/mycommand ""

smith$ sudo -u root mycommand a b c                         Rejected
smith$ sudo -u root mycommand                               Authorized

5.9.3 Discussion

If you specify no arguments to a command in /etc/sudoers, then by default any arguments are permitted.

/etc/sudoers:
smith  ALL = (root) /usr/local/bin/mycommand

smith$ sudo -u root mycommand a b c                         Authorized

Use "" to prevent any runtime arguments from being authorized.

5.9.4 See Also

sudo(8), sudoers(5).



    Chapter 9. Testing and Monitoring