I need to run tomcat on behalf of tomcat user. But in /etc/passwd I have the following line:
tomcat:x:505:506::/usr/share/tomcat:/bin/nologin
So when I try to do this: sudo su tomcat ./bin/startup.sh
It complains about: su: /bin/nologin: No such file or directory
How do I execute the command with proper permissions?
Thanks in advance!
P.S. I'm trying to reverse engineer the configuration and it's production. So I have to be delicate...
Try running:
sudo -u tomcat ./bin/startup.sh
By avoiding su you avoid trying to invoke the user's login shell.
You can specify shell with -s option
sudo su -s /bin/bash -c ./bin/startup.sh tomcat
actually, the best way to do this is via runuser
the man page is here http://man7.org/linux/man-pages/man1/runuser.1.html
this tool is used to deal with the situation as the developer said in his bolg