You don't need to add a "*" to those command as an argument.

 "/etc/init.d/tomcat5 *" is the same as "/etc/init.d/tomcat5". This allows all 
command line arguments to be passed.  Meaning you do not have to have a 
wildcard to allow all command line arguments to be processed, because the base 
command will allow them to already be processed.  With that said you can have 
/etc/init.d/tomcat5 as a sudo command and the user can issue the command "sudo 
/etc/init.d/tomcat5 start" , just like the can issue the command "sudo 
/etc/init.d/tomcat5 restart"

The only time you should add a wildcard to a sudo command is when it's 
absolutely necessary. As an example:

/bin/cp /tmp/* /opt/app/files/.

You probably should look at your sudo commands, and reevaluate the necessity of 
a wildcard.  Also beware the use of wildcards can be very dangerous.  You can 
look at man(5) sudo for more info on the use of wildcards.

Now as for your command the loop not properly processing the commands with 
spaces correctly, I would surmise that you should have quoted your variable in 
the loop - 

while read -r line; do ipa sudocmd-add "$line"; done < /tmp/list.

I usually always echo back the variable before I put the command in, to make 
sure my variable is being processed the way I believe it should be.  That way 
if other type of quoting or adjustment to the variable needs to happen, then it 
can be.  As an example:

while read -r line; do echo "Line - $line"; done < /tmp/list.

FreeIPA-users mailing list --
To unsubscribe send an email to

Reply via email to