해독된 파일을 디스크에 쓰지 않고 다른 명령에 사용하기 위해 파일을 해독하려면 어떻게 해야 합니까?

해독된 파일을 디스크에 쓰지 않고 다른 명령에 사용하기 위해 파일을 해독하려면 어떻게 해야 합니까?

ansible-vault decrypt파일을 해독하고 기록하는 명령( )이 있습니다 . 파일이나 -/ 에 쓸 수 있습니다 stdout.

그런 다음 이 해독된 파일(개인 키)을 mycommand --key-file <path to file>.

현재 스크립트가 실행되면 ansible-vault decrypt --output mykey.key해독된 파일을 디스크에 쓴 다음 를 사용하고 mycommand --key-file mykey.key마지막으로 rm mykey.key.

해독된 파일을 디스크에 전혀 쓰지 않고 mycommand파일처럼 액세스할 수 있는 방법이 있습니까?

표준 입력에서 키를 전혀 읽지 않기 때문에 두 번째 명령으로 파이프할 수 없습니다. 내가 생각할 수 있는 유일한 것은 명령을 실행하기 전에 가상 디스크를 생성하고 거기에 키를 쓰고 모든 명령이 실행된 후 가상 디스크를 마운트 해제하는 것입니다. 이렇게 하면 해독된 키가 흔적도 없이 사라지게 될 것입니다.

답변1

명령에 파일 이름이 필요하지만 파일 형식에 관심이 없는 경우 데이터를 파이프하여 /dev/stdin파일 이름으로 지정할 수 있습니다. /dev/stdin표준 입력을 참조합니다.

ansible-vault decrypt | mycommand --key-file /dev/stdin

mycommand파이프가 허용되지 않으면 작동하지 않습니다(일반적으로 프로그램에서 파일을 검색할 수 있도록 요구하는 경우 발생함). 이 경우 임시 파일에 키를 써야 합니다.

대부분의 Linux 시스템(및 기타 여러 Unix 변형)에는 기본적으로 메모리 내 파일 시스템이 있습니다. 이 파일 시스템이 마운트되는 위치와 이를 사용하는 데 필요한 권한은 배포에 따라 다릅니다. 최신 Linux 시스템에는임시 파일 시스템파일 시스템은 다음을 포함한 여러 위치에 마운트됩니다./run. 일반적으로 모든 사용자는 /run/user/1234로그인할 때 디렉토리를 얻습니다. 여기서 1234는 사용자 ID입니다. 많은 서비스는 아래에 자체 디렉토리를 생성하며 /run종종 /var/run에 대한 심볼릭 링크입니다 /run. 시스템에서 사용 가능한 항목을 확인하는 데 사용됩니다 df -t tmpfs.

임시 파일 시스템에 기록된 데이터는 스왑 영역에 있을 수 있습니다. 기억의 내용도 마찬가지다. 하드 드라이브 도난 위협으로부터 보호하려면 스왑 영역을 암호화해야 합니다. 최대 절전 모드를 사용하지 않는 경우 부팅할 때마다 생성되고 어디에도 저장되지 않는 교환 암호화용 임의 키를 사용할 수 있습니다.

답변2

제 생각에는 이것은 매우 좋은 것입니다 fifo.

참조를 특수 파일로 생성 fifo(사용 mkfifo)하고 해당 파일에 대한 ansible 출력을 수행한 다음 명령을 통해 이를 읽습니다. 하지만 이는 파일이 아니며 저장 공간도 포함하지 않습니다.

권장되는 대로 쉘 "여기" 파일도 좋은 후보입니다( <(CMD)빌드).

관련 정보