튜토리얼을 사용하기 쉬운 스크립트로 수정하려고 합니다. http://qt-project.org/wiki/RaspberryPi_Beginners_guide.
나는 sudo/root의 필요성을 최소화하려고 노력하고 있습니다(바람직하게는 마지막 dd
단계에만 해당).
내 질문은 다음과 같습니다
sudo/root 권한 없이 어떤 방식으로든 ext4 파일 시스템을 마운트할 수 있나요?
FS의 사용자/그룹을 무시하는 방식으로 설치할 수 있습니까? (그래서 sudo 없이 make install을 실행할 수 있습니까?)
파일 시스템은 현재 -o loop,offset=62914560
파일의 오프셋(예: 루프백)에서 마운트됩니다.
이 파일은 라즈베리 파이를 부팅하는 데 사용되는 SD 카드에 복사될 이미지입니다.
답변1
당신이 원하는libguestfs. 당신은 그것을 사용할 수 있습니다손님 물고기또는게스트몬트, 또는 다음을 통해 직접 라이브러리를 사용하세요.C 인터페이스또는 다음과 같은 많은 언어 바인딩 중 하나파이썬.
답변2
시스템이 udisk를 사용하는 경우(그리고 polkit에서는 루트가 아닌 사용자가 udisk를 마운트하도록 허용함) 다음을 사용하여 파일을 마운트할 수 있습니다.
udisksctl loop-setup -f file.img -o <OFFSET>
<OFFSET>
루프백 설치를 시작하기 위한 바이트 수를 나타내는 정수 값입니다. -r
읽기 전용으로 설치하려는 경우 이 스위치를 사용할 수 있습니다.
답변3
이에 대해 저는 다음과 같은 생각을 했습니다.
/etc/fstab
일반 권한을 가진 사용자로 설치하려는 장치에 대한 행을 추가할 수 있습니다.
샘플 라인은 다음과 같습니다
/dev/mydevice /mnt/directory auto rw,user 0 0
이 라인을 통해 일반 사용자는 장치 mydevice
에 설치할 수 있으며 장치를 읽고 쓸 수도 있습니다. /mnt/directory
전화만 하면 돼
mount mydevice
또는
mount /mnt/directory
구문에 대한 훌륭한 설명을 보려면 /etc/fstab
다음을 확인해야 합니다.
이는 raspberry
USB 장치이므로 udev
특정 udev 규칙(자동 마운트 등)을 추가하여 이를 더욱 우아하게 달성할 수 있습니다. 이 경우 추가 설명이 필요하시면 지금 설명하겠습니다.
답변4
설치하려면 슈퍼유저 권한이 필요합니다. 그러나 이는 sudo, mount 또는 fusionmount와 같은 setuid 도우미 명령을 통해 사용할 수 있습니다. /etc/fstab에서 관리자는 일부 일반 사용자에게 특정 FS를 마운트하도록 허용할 수 있습니다. 특정 사용자는 fusion을 통해 파일 시스템을 마운트하도록 허용할 수 있습니다. 예를 들어 FS가 ext인 경우 fusionext를 사용할 수 있습니다.
아니면 파일 시스템 내에서 쓸 수 있는 애플리케이션을 사용하면 설치하지 않고도 이를 수행할 수 있습니다. 예를 들어, debugfs는 ext fs 이미지에 쓸 수 있고(디렉터리, 파일 생성, 소유권 변경...) debugfs는 쉽게 스크립트될 수 있습니다. qemu를 사용하여 Linux 커널 및 관련 명령을 실행하여 FS에 쓸 수도 있습니다.