Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

179
Views
How to execute a command on behalf of a user if login is denied

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...

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Try running:

sudo -u tomcat ./bin/startup.sh

By avoiding su you avoid trying to invoke the user's login shell.

over 4 years ago · Santiago Trujillo Report

0

You can specify shell with -s option

sudo su -s /bin/bash -c ./bin/startup.sh tomcat
over 4 years ago · Santiago Trujillo Report

0

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

Whenever an service is running as root and wants to change UID using the shell it should use runuser.

http://danwalsh.livejournal.com/55588.html

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!