/etc/crontab이 환경에서 HOME=/을 설정하는 이유는 무엇입니까? [폐쇄]

/etc/crontab이 환경에서 HOME=/을 설정하는 이유는 무엇입니까? [폐쇄]

/etc/crontab많은 RedHat(EL/Fedora) 기반 배포판의 시스템 crontab에 다음 줄이 포함되어 있는 것을 발견했습니다 .

홈페이지=/

이 구성은 인터넷의 많은 문서/예에도 표시되는 것으로 보이며 제거되기 전까지 수년 동안 이런 방식으로 존재했던 것으로 보입니다.2010RPM 버전 1.10-34.아마도 데비안/기타 기반 설치에 유사한 구성이 있을 수 있습니다. 독자가 동일한 구성을 가진 배포판에 대해 명확한 아이디어를 갖고 있다면 의견을 추가해 주세요. 여기서 텍스트를 확장하겠습니다.

제가 여기서 드리는 질문은 다음과 같습니다.
시스템 crontab에서 HOME을 파일 시스템 루트로 설정하는 기술적 이유는 무엇입니까?나는 기술 이론에만 관심이 있으며, 가급적이면 이 구성이 특정 배포판에 수년 동안 존재했는지, 의견이 아닌 역사적인 이유에 관심이 있습니다. 이 구성을 제거하면 표준 이전 릴리스에서 어떤 문제가 발생할 수 있는지 궁금합니다. 아마도 이러한 이유가 제거된 업스트림 버전에 더 이상 존재하지 않거나 구성을 제거하는 사람이 이 수정된 근본적인 문제를 인식하지 못할 수도 있습니다.

저는 최근 HOME=/EL6 시스템에서 이 구성을 제거하여 문제를 해결했으며, 조사에 따르면 이 구성은 수년간 많은 시스템에서 표준이었던 것으로 나타났습니다. 이것이 해결하는 것보다 더 많은 문제를 일으킬 수 있다고 생각했기 때문에 해결하는 데 도움이 될 수 있는 모든 상황에 관심을 갖게 되었고 그것을 제거함으로써 나 자신을 열 수 있었습니다.

배경으로, 문제는 cron 트리거 mysqladmin명령이 이를 무시하기 시작하는 것 같다는 것 입니다. 홈 디렉토리에 있는 것과 ~/.my.cny다른 MySQL 설치 또는 업데이트를 사용하기 시작하는 것 같습니다 . 다른 사람이 비슷한 문제를 겪을 경우를 대비해 이 내용을 추가합니다. 어쩌면 이 정보를 사용하여 더 빠른 솔루션을 찾을 수도 있습니다.$HOME/.my.cnf.my.cnf/etc/passwd

답변1

데몬은 일반적으로 chdir("/")특정(원격으로 마운트된) 디렉터리에서 시작되지 않도록 하나 이상의 작업을 수행하므로 해당 디렉터리의 제거 또는 재설치가 불필요하게 복잡해집니다. 크론 작업이 HOME=/이를 모방할 수 있으므로 제거나 재설치가 절실히 필요한 디렉터리에 무작위(잠재적으로 장기 실행) 작업이 불필요하게 위치하지 않습니다. (물론 ~/.my.cnf이는 필요하고 원격 설치 디렉터리에 있는 경우 불필요한 취약점입니다.언제네트워크나 원격 시스템이 다운되면 cron 작업이 만족스럽지 않게 됩니다. )

OpenBSD에서 rootcrontab 파일은 실제로 다음과 같이 설정합니다.

HOME=/var/log

기본적으로. 설정이 어디서 왔는지 확실하지 않기 때문에 홈 디렉터리가 무엇인지 테스트하고 싶거나 이를 알려주는 cron 작업을 작성하려면(그리고 cron이 스팸을 보내기 전에 해당 디렉터리를 삭제했는지 확인하세요):

* * * * * /bin/pwd

반품! 구성 파일에 대한 경로를 정규화하면 환경 설정이 로컬 디렉터리의 로컬 파일로 유출되거나 로컬 파일에서 유출되어 잘못된 구성 파일을 선택하는 것을 방지하는 데 도움이 됩니다.

(역사적으로 파일은 root특정 유형의 UNIX에만 존재 /하고 /root다른 곳에서는 존재하지 않았으며 심지어 모든 것도 다른 곳에서 설치할 수 있었습니다. 그 당시에는 디스크가 훨씬 더 비쌌습니다...)

관련 정보