Starten Sie den Tomcat-Server als nicht-root neu

1327
bug

info: Apache Tomcat / 6.0.36 CentOS 2.6.32-279.14.1.el6.x86_64

Ist es möglich? Ich habe von jemandem gehört, dass eine ältere Tomcat-Version über ein Manager-Tool verfügt, mit dem nicht privilegierte Benutzer den Server neu starten können. Ich habe den Manager überprüft, aber ich sehe nur Optionen zum Deaktivieren von Anwendungen, die auf dem Server ausgeführt werden, aber den Server selbst.

1

1 Antwort auf die Frage

0
bug

Ich entschied mich für die im Tomcat-Wiki beschriebene Setuid-Problemumgehung.

Another method is to use SetUID scripts (assuming you have the capability) to do this. Here's how I do it.  Create a file called foo.c with this content (replace "/path/startupscript" with the tomcat startup script):  #include <unistd.h> #include <stdlib.h>  int main( int argc, char *argv[] ) {  if ( setuid( 0 ) != 0 ) perror( "setuid() error" ); printf( "Starting $\n" ); execl( "/bin/sh", "sh", "/path/startupscript", 0 ); return 1;   }  Run the following as root (replacing tmp with whatever you want the startup script to be and replacing XXXXX with whatever group you want to be able to start and stop tomcat:  gcc tmp.c -o tmp chown root:XXXXX tmp chmod ugo-rwx tmp chmod u+rwxs,g+rx tmp  Now members of the tomcat group should be able to start and stop tomcat. One caveat though, you need to ensure that that your tomcat startup script is not writable by anyone other than root, otherwise your users will be able to insert commands into the script and have them run as root (very big security hole). 

Quelle: http://wiki.apache.org/tomcat/HowTo#How_to_run_Tomcat_without_root_privileges.3F