escaping * in sudoers
aaron at spangler.ods.org
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 allianz.de 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?
> Regards, Barbara
> Barbara Ruess
> Tel.: 0711-663-2516 Leuschnerstr. 12, 70174
> Fax: 0711-663-82516 email: barbara.ruess at allianz.de
> sudo-users mailing list <sudo-users at sudo.ws>
> For list information, options, or to unsubscribe, visit:
More information about the sudo-users