5.9. Prohibiting Command Arguments with sudo

Problem

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

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

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.

See Also

sudo(8), sudoers(5).

Get Linux Security Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.