escaping * in sudoers

Aaron Spangler aaron at
Mon Mar 8 22:23:30 EST 2004


When one runs: sudo ls *, the * character is interpreted by the current shell 
you are using.  It replaces the * character with a list of files in your own 
directory before passing it to sudo.  For example, if your directory 
contained three files (called one, two, three respectively), and you did a 
'sudo ls *', sudo gets passed the options 'ls one three two'.  Next sudo 
tries to match it against '/usr/bin/ls *'.  Since sudo never receives the *,  
the comparison fails and the command is denied.

However if you were to type 'sudo ls \*', then sudo actually gets passed the 
*.  However you have to train your users to put the back slash in.  (The 
backslash does not need to go into /etc/sudoers.)

I hope this is helpfull.


On Monday 08 March 2004 08:53 am, barbara.ruess at wrote:
> According to sudo documentation you can escape a special character in the
> sudoers file by \.
> I am trying to give a user permission for a command that contains an
> astrisk, le's say   ls *.
> But I can't put this in the sudoers file:
> testuser testhost=(ROOT) NOPASSWD:/usr/bin/ls \*
> >>> sudoers file: syntax error, line 540 <<<
> What now?
> WHY??
> Regards, Barbara
> Barbara Ruess
> _______________________________________________________
> AG2CEA05
> Tel.: 0711-663-2516                         Leuschnerstr. 12, 70174
> Stuttgart
> Fax: 0711-663-82516                       email: barbara.ruess at
> ____________________________________________________________
> sudo-users mailing list <sudo-users at>
> For list information, options, or to unsubscribe, visit:

More information about the sudo-users mailing list