以下命令从具有 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
tomcat 的 shell 是 /bin/false,你可以用 su - as 运行
sudo su -s /bin/bash -c "touch temp/b.txt" tomcat