I want an unprivileged user to be able to restart tomcat on my server. So I edited /etc/sudoers as follows

username  ALL=/etc/init.d/tomcat6

However, when the user runs /etc/init.d/tomcat6 restart he gets this error:

Starting tomcat server...
 touch: cannot touch `/var/tomcat6/logs/catalina.out': Permission denied
/var/tomcat6/bin/catalina.sh: line 314: /var/tomcat6/logs/catalina.out: Permission denied

How do I allow this user to run tomcat without giving him write permission on the log file /var/tomcat6/logs/catalina.out ?

[root@jsp1 ~]# ll /var/tomcat6/logs/catalina.out
-rw-r--r-- 1 root root 272669097 Feb 27 21:50 /var/tomcat6/logs/catalina.out
  • 4
    This may be redundant, but you were unclear in your question--are you running the service command with sudo? I.e., sudo /etc/init.d/tomcat6?
    – Andrew M.
    Feb 27, 2011 at 21:00
  • 1
    no, I wasn't running the command using sudo. Sorry my bad... It works just fine now with sudo. So thanks a lot Redmumba :)
    – Zenet
    Mar 1, 2011 at 10:35

2 Answers 2


Make sure to actually run the command with sudo when you try it.


I wanted to use the service command for this, so I came up with this:

%tomcat7 ALL=NOPASSWD:/usr/sbin/service tomcat7*

This allows everyone in tomcat7-group to start/stop/restart the tomcat service with sudo service tomcat7 <command> without typing their password.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .