Разница между sudo -u и su -c

Следующее выполняется из учетной записи с правами sudo:

У меня есть пользователь tomcat создан с помощью следующей команды

sudo useradd -g tomcat -d /usr/local/tomcat -m -s /bin/false tomcat

У меня также есть пользователь test создан с помощью следующей команды

sudo adduser test

У меня есть папка temp и завивка 777 установлены в этой папке

chmod 777 temp

Ниже приведены мои наблюдения:

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

Итак, мой вопрос, что именно не так с пользователем tomcat?

1 ответ

Решение

Оболочка кота - /bin/false, вы можете запустить с su - as

sudo su -s /bin/bash -c "touch temp/b.txt" tomcat
Другие вопросы по тегам