O shell do tomcat é / bin / false, você pode rodar com o su-as
sudo su -s /bin/bash -c "touch temp/b.txt" tomcat
O seguinte está sendo executado a partir de uma conta com privilégios de sudo:
Eu tenho um usuário tomcat
criado com o seguinte comando
sudo useradd -g tomcat -d /usr/local/tomcat -m -s /bin/false tomcat
Eu também tenho um usuário test
criado com o seguinte comando
sudo adduser test
Eu tenho uma pasta temp
e perms 777
estão definidos nesta pasta
chmod 777 temp
A seguir estão minhas observações:
## This works and I can see temp/a.txt being created
sudo -u tomcat touch temp/a.txt
## Does not work.
sudo su -c "touch temp/b.txt" tomcat
## works
sudo -u test touch temp/c.txt
## works
sudo su -c "touch temp/d.txt" test
Então, minha pergunta é exatamente o que está errado com o usuário do tomcat?
O shell do tomcat é / bin / false, você pode rodar com o su-as
sudo su -s /bin/bash -c "touch temp/b.txt" tomcat