Разница между 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