web-dev-qa-db-ja.com

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)。

このファイルは、Raspberry Piの起動に使用されるSDカードにコピーされるイメージです。

13
Keyz182

libguestfs が必要です。 guestfish または guestmount を介して使用するか、ライブラリを Cインターフェイス または-などの多くの言語バインディングのいずれかを介して直接使用できます。 Python

13
Jim Paris

これについては、次のことが頭に浮かびます。

通常の権限を持つユーザーとしてマウントするデバイスの/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


raspberryはUSBデバイスであるため、特定のudevルール(自動マウントなど)を追加することにより、udevでよりエレガントにこれを実現できます。この場合、さらに説明が必要な場合は、ここで説明します。

2
user1146332

マウントするには、スーパーユーザー権限が必要です。しかし、それらはSudo、mount、fusermountなどのsetuidヘルパーコマンドによって提供される可能性があります。/etc/fstabで、管理者は特定のFSをマウントするために一部のユーザーを許可できます。一部のユーザーは、Fuseを介してファイルシステムをマウントすることを許可できます(たとえば、FSがextの場合、fuseextを使用できる場合があります。

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

2

システムがudiskを使用している(そしてpolkitが非rootユーザーのudiskのマウントを許可している)場合は、次のコマンドでファイルをマウントできます。

udisksctl loop-setup -f file.img -o <OFFSET>

<OFFSET>は、ループバックマウントを開始するバイト数を表す整数値です。 -r読み取り専用でマウントしたい場合に切り替えます。

2
palswim