
센토스 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
하는 사용자가 루트이거나 의 기존 항목이 /etc/passwd
에 나열되어 있는 경우에만 허용됩니다 /etc/shells
.