crontab 스크립트에서 환경 변수를 호출하는 것이 안전합니까?

crontab 스크립트에서 환경 변수를 호출하는 것이 안전합니까?

암호 해독 키와 같은 민감한 정보가 포함된 환경 변수를 읽는 crontab 스크립트가 있습니다. crontab 항목은 다음과 같이 정의됩니다. 30 3 * * 5 VAR="pw" /usr/bin/script.sh

이렇게 민감한 물건을 보관해도 안전할까요? 그렇지 않다면 어떻게 개선할 수 있습니까?

도움을 주셔서 감사합니다.

답변1

다른 사용자가 접근할 수 없으므로 crontab 파일과 환경에 변수를 넣어두는 것이 안전합니다. 하지만, 예를 들어 디버깅 도움을 요청할 때 crontab 줄을 게시하거나, 스크립트 자동화 방법의 예시로 이를 복사하여 누군가에게 보내는 경우, 또는 어떤 프로세스가 진행되는 경우 실수로 공개될 위험이 있습니다. 환경을 기록하고 이 비밀번호에 액세스할 수 없는 사람이 로그에 액세스할 수 있습니다. 또는 백업하는 경우 이 비밀번호에 액세스할 수 없는 사람이 백업에 액세스할 수 있습니다. 비밀을 별도의 파일이나 디렉터리 트리에 보관하고 필요할 때 읽는 것이 좋습니다.

수정할 수 없는 경우 script.sh:

VAR=$(cat ~/.secret/script/password)

script.sh스크립트 전체에서 변수를 사용 가능하게 만드는 대신 필요할 때 변수를 읽도록 수정할 수 있는 경우 .

환경 변수는 다른 사용자에게 노출되지 않지만 다른 사용자가 전달할 수 있으므로 외부 명령에 인수로 전달 ps하지 마십시오 . $VAR쉘 내장 함수에 대한 인수로 사용하는 것이 안전합니다 $VAR. 예를 들어 다음은 안전합니다.

gpg --passphrase-fd=3 3< <(printf %s "$PASSPHRASE")

이 구체적인 예는 다음과 같이 더 간단하게 표현될 수 있습니다.

gpg --passphrase-file=/path/to/passphrase

관련 정보