mktemp 개선

mktemp 개선

mktemp암호화된 컨테이너나 파일 시스템의 사용을 가장 효과적으로 개선할 수 있는 방법을 알고 싶습니다 .

내가 다루고 있는 문제는 가능하다면 쉘 스크립트가 작업 디렉토리를 포함하는 파일 시스템 내에 임시 파일을 저장하기를 원한다는 것입니다.

정상적인 동작 mktemp은 환경 변수나 /tmp. 그러나 암호화된 컨테이너 내부의 파일로 작업하는 경우 임시 데이터가 암호화되지 않은 위치로 유출되는 경우가 많습니다.

tmp아이디어는 먼저 현재 파일 시스템의 마운트 지점에 디렉토리가 존재하는지 확인하고 /tmp이를 최후의 수단으로만 사용하는 것입니다. 이를 안정적이고 효율적으로 달성하려면 어떻게 해야 합니까?

편집하다

특정 경로에 대한 마운트 디렉터리를 식별하는 가능한 방법은 다음과 같습니다.

dir=`realpath [path]`; 
res=1; 
while [ $res -ne 0 ]; do 
  dir="${dir%/*}"; 
  mountpoint -q "$dir/"; 
  res=$?; 
done; 
echo "$dir";

그러나 이것이 가장 효율적인지는 잘 모르겠습니다.

답변1

mktemp-p 옵션을 사용하거나 다른 TMPDIR을 설정할 수 있습니다 .

-p temp-dir, --tmpdir=temp-dir
          temp  directory  for  the  file.  This option is a member of the
          tmpdir class of options.

          If this option is not provided, mktemp will use the  environment
          variable  TMPDIR to find a suitable directory.  If these are not
          available, it will fall back to ~/tmp  or  /tmp.   A  <file-pat>
          command line argument containing a directory component will con-
          flict with this option.

예를 들어:

#!/bin/bash
TMPDIR=`pwd`
mktemp

답변2

귀하가 요구하는 내용을 제가 오해하지 않는다면 귀하가 원 mktemp /WORKING/DIR/tmp.XXXXXXXXXX하거나 원하는 이름은 다음과 같습니다(각 이름은 X임의의 영숫자로 대체됨).

관련 정보