![해독된 파일을 디스크에 쓰지 않고 다른 명령에 사용하기 위해 파일을 해독하려면 어떻게 해야 합니까?](https://linux55.com/image/174095/%ED%95%B4%EB%8F%85%EB%90%9C%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EB%94%94%EC%8A%A4%ED%81%AC%EC%97%90%20%EC%93%B0%EC%A7%80%20%EC%95%8A%EA%B3%A0%20%EB%8B%A4%EB%A5%B8%20%EB%AA%85%EB%A0%B9%EC%97%90%20%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0%20%EC%9C%84%ED%95%B4%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%ED%95%B4%EB%8F%85%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
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)
빌드).