데몬 프로세스로 실행되어야 하는 Java 애플리케이션을 만들었습니다. SysVinit를 사용하는 Amazon Linux AMI를 사용하고 있고 데몬에 이미 init 스크립트가 있어서 파일을 어디에 저장할지 약간 혼란스럽습니다.
처음에 저는 그 폴더에 일반 프로그램이 있을 것이라고 추측했기 때문에 jar
그 폴더에 파일을 넣으려고 했습니다. 그러나 제 프로그램은 2개의 라이브러리를 사용하므로 실제로 는 2개의 라이브러리가 있는 1개의 파일이 있습니다./usr/bin
jar
lib
폴더와 폴더가 같은 폴더에 있어야 하기 때문에 jar
파일을 넣은 /usr/bin
다음 라이브러리를 넣는 것이 걱정됩니다 . 또한 나중에 다른 프로그램에서 이러한 라이브러리를 업데이트하면 시스템이 복잡해질 수 있다고 생각합니다. 실수로 일부 기능이 손상됩니다. , 말할 것도 없이 너무 많은 파일이 사방에 흩어져 있기 때문에 상황이 번거로워지기 시작합니다./usr/lib
jar
lib
그러나 나는 표준을 고수하는 것을 좋아하기 때문에 내 프로그램을 위한 임의의 폴더를 만들고 그 안에 필요한 모든 것을 넣고 싶지 않습니다.
Linux에 이러한 시스템을 배포하는 올바른 방법이 있습니까? 일부 라이브러리가 필요한 Java 데몬을 배포하는 가장 좋은 방법은 무엇입니까?
답변1
JAR
디렉토리에 파일을 넣는 것은 /usr/bin
전혀 좋은 생각이 아닙니다. 여기에는 여러 가지 이유가 있는데, 첫 번째이자 가장 중요한 것은 보안입니다. 어느 정도 애플리케이션은 격리되어야 합니다. 시스템 전체 소프트웨어와 함께 바이너리와 알 수 없거나 안전하지 않은 파일을 배치하면 공격 표면이 필요 이상으로 넓어집니다. 별도의 디렉터리를 만들면 논리적 분리, 보안 등 많은 이점이 있습니다. 최근에 읽은 책을 강력히 추천하고 싶습니다.지속적인 전달.
나의 충고:
- 자체 홈 디렉터리를 사용하여 이 Java 애플리케이션에 대한 별도의 사용자 및 그룹을 만듭니다
app-user
. - 거기에 모든 아티팩트를 배포하고,
- 이 Java 애플리케이션을 실행하는 systemd 장치 또는 sysv 장치를 만들고
app-user
홈 디렉터리에서 라이브러리를 로드합니다.app-user