/bin/false ユーザーではコマンドを実行できません

/bin/false ユーザーではコマンドを実行できません

Centos8。

があるsnowuser

[snowuser@snowcannon-01 ~]$ cat /etc/passwd | grep snowuser  
snowuser:x:1002:1002::/home/snowuser:/bin/bash   
[snowuser@snowcannon-01 ~]$ groups  
snowuser wheel

ユーザーがいますtomcat:

[snowuser@snowcannon-01 ~]$ cat /etc/passwd | grep tomcat  
tomcat:x:1003:1003::/opt/tomcat:/bin/false  


cat /etc/group | grep "tomcat\|snowuser"  
wheel:x:10:ydyachuk,amsliusar,snowuser  
snowuser:x:1002:   
tomcat:x:1003:   

次のユーザーで Tomcat の起動スクリプトを実行しようとしていますtomcat:

/bin/su tomcat -c /opt/tomcat/bin/startup.sh

しかし、何も得られませんでした。つまり、エラー メッセージは表示されず、Tomcat プロセスも実行されませんでした。

私が知っている唯一の詳細は、コマンドがエラーで実行されていたことです。

[snowuser@snowcannon-01 ~]$ echo $?
1

tomcatユーザーはスクリプト実行のための適切な権限を持っているようです:

[snowuser@snowcannon-01 ~]$ ll /opt/tomcat/bin/startup.sh 
-rwxr-xr-x. 1 tomcat tomcat 1904 Nov 11 15:14 /opt/tomcat/bin/startup.sh

Tomcat を実行するにはどうすればいいですか?

答え1

デフォルトのシェルをに設定すると、/bin/falseユーザーsuが切り替えられ、

/bin/false -c /opt/tomcat/bin/startup.sh

あなたは-s オプションsuで設定を上書きするには を使用しますが/etc/passwd、これは呼び出し元のユーザーが root であるか、 の既存のエントリが/etc/passwdにリストされている場合にのみ許可されます/etc/shells

関連情報