0

Without getting into proxying, or port redirects, port forwards, etc, is there any native method to bind Resin (a Java server) to port 80, on an Ubuntu server, while Resin is started by root but then operates as an unprivileged user (www-data)?

This is on Ubuntu 10.10, running Resin from the caucho apt repository. I know if I run & operate Resin as root, I can make it use port 80, but as you can imagine, that's not ideal.

1 Answer 1

1

Found the answer, terminal cmds below. These commands assume you're running Ubuntu 10, and have installed Resin via it's apt repositories. In my case, www-data will be running authbind, with a userid of 33, which you'll see below:

# aptitude install authbind
# nano -w /etc/authbind/byuid/33
# chown www-data. /etc/authbind/byuid/33
# chmod 700 /etc/authbind/byuid/33
# nano -w /etc/init.d/resin

While editing /etc/init.d/resin, find:

start)

Below that, find:

su $USER

Delete that line, replace with:

su $USER -s /usr/local/bin/authbind --deep /bin/bash -c """$JAVA -jar $RESIN_HOME/lib/resin.jar $ARGS start""" 1>/dev/null 2>/dev/null

Find:

stop)

Below that, find:

su $USER

Delete that line, replace with:

su $USER -s /bin/bash -c """$JAVA -jar $RESIN_HOME/lib/resin.jar $ARGS shutdown""" 1>/dev/null 2>/dev/null

Write the file & exit (use CTRL+O, CTRL+X)

Now you need to edit resin config:

# nano -w /etc/resin/resin.xml

Make sure that your HTTP port is set to 80 (I believe it is as default, as Resin runs as rot by default), and make sure the following 2 lines are uncommented in the file as well:

www-data www-data

Save & exit (CTRL+O, CTRL+X)

Now start Resin:

# service resin start
2
  • Found out after all this, that Resin supports running as a user/group natively :-)
    – Jon L.
    Dec 5, 2010 at 5:46
  • In resin.xml, just edit the user/group xml tags. Haven't found any issues with that. The procedure above can also be altered and reused for running Tomcat (or TCat) as non-root.
    – Jon L.
    Dec 5, 2010 at 5:47

You must log in to answer this question.

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