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 '11 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 '11 at 10:35

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.

Your Answer

By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.