Невозможно запустить команду под пользователем /bin/false

Невозможно запустить команду под пользователем /bin/false

Centos 8.

Есть 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.

Связанный контент