요즘 대부분의 설치 스크립트에는 다음과 같은 특정 패턴이 있습니다.
curl -fsSL <url> | sh --- and usually run as root
일부 웹 사이트에는 프로그램을 루트로 실행하고 오류를 확인하는 것에 대한 면책 조항이 있을 수도 있습니다. 그러나 이는 그다지 안전하지 않으며 CA 인프라와 https를 사용하여 보안을 제공합니다. 웹사이트가 https를 통해 전송하는 대신 서명된 버전으로 이를 수행하는 이유는 무엇입니까? 부인 방지 및 파일 무결성이 더 좋지 않을까요? 다운로드 후 대부분의 관리자가 수행하는 작업.
답변1
그 후에 대부분의 관리자가 무엇을 하는지는 모르지만 다음과 같은 작업을 하기 전에 내가 무엇을 하는지 말씀드릴 수 있습니다. 사용하려는 배포판에 대한 패키지를 찾고, 내 요구 사항에 맞는 패키지를 찾을 수 없으면 요구사항 패키지 중 하나
- 새 샌드박스를 만들고 그 안에 소프트웨어를 설치한 다음 소프트웨어의 설치와 기능을 확인합니다.
- 계층의 상위에 있는 사람이 알려준다면 새 샌드박스를 만들어 거기에 설치하거나,
- 나는 그것을 설치하지 않습니다.
하지만 그건 나야. 패키지에 서명이 있든 없든 상관 없어. 내 위협 모델에는 소프트웨어 개발자가 포함됩니다. 특히 해당 소프트웨어를 본 배포자가 없다고 확신할 수 있는 경우에는 더욱 그렇습니다.
하지만 이 컬 설치 모드는 포기해야 합니다.
예. 해야 한다. 그러나 그것은 사실이 아니며 모든 관련 Linux 배포판과 3~4개의 BSD에 대한 패키지를 만드는 것이 짜증스럽기 때문에 소프트웨어 개발자가 이런 종류의 설치를 제공하는 것을 이해할 수 있습니다. 지금은 15년 전보다 상황이 더 나쁘다.
답변2
일반적으로 curl URL(script) | sh
자동화된 스크립트인 쉘 스크립트(설치 스크립트)를 다운로드하여 실행합니다.용이하게종속성 확인, 디렉터리 생성/삭제, 루트 암호 요청, 리포지토리 추가, Linux 배포판에 적절한 프로그램 버전 다운로드 등의 작업을 수행하는 프로그램을 설치합니다.
설치 스크립트를 실행하기 전 모범 사례.
- 스크립트 다운로드(명령의 첫 번째 부분)
curl url(script)
- 텍스트 편집기를 사용하여 스크립트 내용(또는
cat
,less
...) 을 검토합니다. - 설치 스크립트를 실행 합니다
sudo bash script
...sudo sh script
다음은 node.js를 설치하기 위한 예시 bash 스크립트입니다. curl -sL https://deb.nodesource.com/setup_9.x
사용 지침이 포함되어 있습니다.
설치 스크립트 실행 후의 모범 사례
설치 스크립트를 실행하면 프로그램이 시스템에 설치됩니다. 설치 스크립트에 프로그램을 업데이트하는 방법(패키지 관리자를 통한 업데이트된 저장소 자동 적용, cron 작업...)이 포함되어 있지 않은 경우 관리자의 웹 페이지를 참조하는 것이 가장 좋습니다.