web-dev-qa-db-ja.com

Sudo -uとsu -cの違い

以下は、Sudo特権を持つアカウントから実行されています。

次のコマンドで作成されたユーザーTomcatがあります

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

また、次のコマンドで作成されたユーザーtestがあります

Sudo adduser test

このフォルダーにはtempフォルダーとperms 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ユーザーの何が間違っているのですか?

2
iwekesi

Tomcatのシェルは/ bin/falseで、su-asで実行できます

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