이 명령을 사용하여 이미지 파일의 형식을 지정했으며 mkfs
이제 루트 권한 없이 해당 이미지 파일에 파일을 복사하려고 합니다.
어떤 이유로 루트 권한이 필요한 로컬 디렉터리에 이미지를 마운트하려고 했습니다. (이유에 대한 의견을 환영합니다)
루트 권한 없이 파일을 형식화된 이미지로 복사하는 널리 지원되는 방법이 있습니까?
편집하다:이미지 형식은 FAT-32입니다.
답변1
이 외에도 마운트는 파일 시스템 구조를 차단/덮어쓸 수 있으므로 일반적으로 루트 권한 없이는 어떤 것도 마운트할 수 없습니다. 이 작업이 수행되거나 수행된 것으로 보이는 경우 일반적으로 루트로 실행되는 마운트 도우미 프로그램(fusermount, udisks 등)이 포함됩니다.
어떤 이유로 마운트 지원을 사용할 수 없는 경우 "포맷된 이미지에 파일을 복사하는 널리 지원되는 방법"은 mkisofs
이를 사용하여 루트를 포함하지 않고 파일이 포함된 이미지를 만드는 것입니다.
사용자 공간 프로그램에서 기능(및 그 이상)을 구현하는 것은 전적으로 가능 mkisofs
하지만 대부분의 사람들이 설치하는 데 문제가 없기 때문에 대부분의 파일 시스템에 그러한 프로그램이 존재하는지 확신할 수 없습니다.
부분이 ext*
있기 때문이죠 .debugfs
$ echo Hello World > hello.txt
$ truncate -s 100M foobar
$ /sbin/mkfs.ext4 foobar
$ /sbin/debugfs -w foobar
debugfs 1.42.11 (09-Jul-2014)
debugfs: ls
2 (12) . 2 (12) .. 11 (20) lost+found
debugfs: mkdir hey
debugfs: mkdir what
debugfs: mkdir up
debugfs: ls
2 (12) . 2 (12) .. 11 (20) lost+found 12 (12) hey
13 (12) what 14 (956) up
debugfs: write hello.txt hello.txt
Allocated inode: 15
debugfs: cat hello.txt
Hello World
그래서 이것이 효과가 있는 것 같습니다. 자동화는 가능 -f cmdfile
하지만(옵션) 숙제처럼 들립니다.
답변2
기본적으로 마운트된 파일 시스템은 루트용으로 예약되어 있습니다. 많은 파일 시스템을 통해 사용자는 디스크 이미지 제어(예: setuid 파일 생성) 권한을 얻을 수 있습니다.
하나를 찾고퓨즈이미지의 파일 시스템을 지원하는 파일 시스템 구현입니다. 커널 파일 시스템 드라이버와 달리 FUSE 파일 시스템 드라이버는 권한 없이 사용자 공간에서 실행됩니다. 불행하게도 모든 파일 시스템에 FUSE 구현이 있는 것은 아닙니다. 특히 읽기-쓰기 ext4 FUSE 구현에 대해서는 알지 못합니다.
저항이 가장 적은 경로는 일반적으로 가상 머신을 통해 파일 시스템 이미지에 액세스하는 것입니다.