sudo / rootなしでループバックファイルをマウントして変更できますか? [コピー]

sudo / rootなしでループバックファイルをマウントして変更できますか? [コピー]

チュートリアルを使いやすいスクリプトに変更しようとしています。 http://qt-project.org/wiki/RaspberryPi_Beginners_guide

私はsudo / rootの必要性を最小限に抑えようとしています(好ましくは最後のddステップのみ)。

私の質問は次のとおりです

  1. sudo / root権限なしでどのようにext4ファイルシステムをマウントできますか?

  2. FSのユーザー/グループを無視する方法でインストールできますか? (それでsudoなしでmake installを実行できますか?)

ファイルシステムは、現在の-o loop,offset=62914560ファイルのオフセット(たとえば、ループバック)からマウントされます。

このファイルは、ラズベリーパイの起動に使用されるSDカードにコピーされるイメージです。

答え1

欲しいlibguestfs。あなたはそれを使用することができますゲストの魚またはゲストモント、または以下から直接ライブラリを使用してください。Cインターフェースまたは、次のような多くの言語バインディングのいずれかPython

答え2

システムがudiskを使用している場合(およびpolkitでは、root以外のユーザーが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ます。

www.tuxfiles.org/linuxhelp/fstab.html


これはraspberryUSBデバイスなので、udev特定のudevルール(自動マウントなど)を追加することで、よりエレガントに達成できます。この場合、追加の説明が必要な場合は今説明します。

答え4

インストールにはスーパーユーザー権限が必要です。ただし、これはsudo、mount、またはfusionmountなどのsetuidヘルパーコマンドを介して使用できます。 /etc/fstab では、管理者は一部の一般ユーザーに特定の FS をマウントすることができます。特定のユーザーは、fusionを介してファイルシステムをマウントすることを許可できます。たとえば、FSがextの場合、fusionextを使用できます。

あるいは、ファイルシステム内で書き込み可能なアプリケーションを使用すると、インストールせずにこれを実行できます。たとえば、debugfsはext fsイメージに書き込むことができ(ディレクトリ、ファイルの作成、所有権の変更...)、debugfsは簡単にスクリプト化できます。 qemuを使用してLinuxカーネルと関連コマンドを実行してFSに書き込むこともできます。

関連情報