--help
최근에 텍스트 mktemp
( man
페이지를 사용할 수 없음)를 읽고 다음을 발견했습니다.
-u, --dry-run do not create anything; merely print a name (unsafe)
이것이 "안전하지 않은" 이유는 무엇입니까? 이렇게 표시하는 특별한 이유가 있나요?
답변1
mktemp
매뉴얼을 인용하자면, 요점은 "임시 파일 또는 디렉터리를 안전하게 생성"입니다. 기본적으로 스크립트에서는 다음과 같이 작성할 수 있습니다.
file="$(mktemp)"
또는
dir="$(mktemp -d)"
임시 파일과 디렉터리는 명령을 실행하는 사용자(물론 대부분의 설정에서는 루트)만 액세스할 수 있고 다른 항목 등에 대한 심볼릭 링크가 아니라는 점을 알고 필요에 따라 안전하게 사용할 수 있습니다. 여전히 경고가 있습니다. 특히 종료 상태를 확인해야 하며 상위 디렉터리를 안전하게 사용해야 합니다.문서더 알아보기. )
mktemp -u
는 파일 이름 구성과 스크립트 사용을 분리하기 때문에 이러한 보장을 제공하지 않습니다.이러지 마세요)
dir="$(mktemp -u)"
mkdir "$dir"
chmod 700 "$dir"
mktemp
와 사이에 mkdir
다른 프로세스가 다른 소유권을 가진 디렉터리를 만들 수 있습니다. 또는 파일의 경우 다른 프로세스가 해당 위치에 파일을 만들거나 심볼릭 링크를 만들 수 있습니다.