web-dev-qa-db-fra.com

Différence entre Sudo -u et su -c

Ce qui suit est en cours d'exécution à partir d'un compte avec les privilèges Sudo:

J'ai un utilisateur Tomcat créé avec la commande suivante

Sudo useradd -g Tomcat -d /usr/local/Tomcat -m -s /bin/false Tomcat

J'ai aussi un utilisateur test créé avec la commande suivante

Sudo adduser test

J'ai un dossier temp et des perms 777 sont définis sur ce dossier

chmod 777 temp

Voici mes observations:

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

Ma question est donc ce qui ne va pas avec l'utilisateur Tomcat?

2
iwekesi

Le shell de Tomcat est/bin/false, vous pouvez exécuter avec su - comme

Sudo su -s /bin/bash -c "touch temp/b.txt" Tomcat
2
zb'