@Override protected void doStart() throws Exception { String jettyUserEnvVariable = System.getenv("JETTY_USER"); if (jettyUserEnvVariable != null) LOG.warn( "JETTY_USER set to: {}. If JETTY_USER is set, starting jetty as root and using " + "jetty-setuid to switch user won't work!!!", jettyUserEnvVariable); if (_umask > -1) { LOG.info("Setting umask=0" + Integer.toString(_umask, 8)); SetUID.setumask(_umask); } if (_rlimitNoFiles != null) { LOG.info("Current " + SetUID.getrlimitnofiles()); int success = SetUID.setrlimitnofiles(_rlimitNoFiles); if (success < 0) LOG.warn("Failed to set rlimit_nofiles, returned status " + success); LOG.info("Set " + SetUID.getrlimitnofiles()); } if (_startServerAsPrivileged) { super.doStart(); if (_gid != 0) { LOG.info("Setting GID=" + _gid); SetUID.setgid(_gid); } if (_uid != 0) { LOG.info("Setting UID=" + _uid); SetUID.setuid(_uid); Passwd pw = SetUID.getpwuid(_uid); System.setProperty("user.name", pw.getPwName()); System.setProperty("user.home", pw.getPwDir()); } } else { Connector[] connectors = getConnectors(); for (int i = 0; connectors != null && i < connectors.length; i++) { connectors[i].start(); } if (_gid != 0) { LOG.info("Setting GID=" + _gid); SetUID.setgid(_gid); } if (_uid != 0) { LOG.info("Setting UID=" + _uid); SetUID.setuid(_uid); Passwd pw = SetUID.getpwuid(_uid); System.setProperty("user.name", pw.getPwName()); System.setProperty("user.home", pw.getPwDir()); } super.doStart(); } }
public String getUsername() { Passwd passwd = SetUID.getpwuid(_uid); return passwd.getPwName(); }
public void setUsername(String username) { Passwd passwd = SetUID.getpwnam(username); _uid = passwd.getPwUid(); }