
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
.