すべてのLinuxシステムに対して完全なRW権限を持つext4形式のUSBドライブを作成するには?

すべてのLinuxシステムに対して完全なRW権限を持つext4形式のUSBドライブを作成するには?

ext4USBスティックをフォーマットし、Linuxではなく一般的なドライブ(FAT32、、、exFAT)のように使用したいと思いますNTFS

つまり、USBスティックをLinuxコンピュータに接続して読み書きできるようにしたいのです。権限を調整する必要はありません。たとえば、何かをしたり、chmod何かchownをしています。

私はコマンドラインコマンドではなくGPartedのようなGUIパーティショニングソフトウェアを使用することを好みますが、どんなソリューションでも歓迎します!

私はこのような投稿が何人かの人々にとって重複した天国であると確信していますが、私たちは6から10のSOとフォーラムの投稿を検索した後でも私の問題に対する簡単な解決策を見つけることができませんでした。ユーザーごとに権限を調整することがすべてのようです。おそらくext4ドライブを使用するのと同じくらい無意識のうちに便利ではないでしょうNTFS

答え1

Unixスタイルのファイルシステムと同様に、ext4には標準のUnixファイルの所有権と権限ルールが含まれています。すなわち、ユーザはUID番号で識別され、各ユーザは1つ以上のグループに属し、各グループはGID番号で識別される。各ファイルには所有者UIDとグループ所有者GIDがあります。 3つのクラシックUnixファイル権限セットは次のとおりです。

  • 所有者のUID番号で識別される所有者の権限セット
  • グループの GID 番号で識別されるグループ所有者の権限セット
  • 他人に一連の権限を与える

権限を調整せずにスティックにアクセスするには、スティックに作成されたすべてのファイルとディレクトリが自動的に非制限的な権限を持つことを確認する必要があります。問題は、生成された新しいファイルの権限が値によって制御されることです。 USBスティックにファイルを作成し、通常の使用のためにデフォルト(通常または)に戻すためにumask変更を続けたくありません。 。誤って権限が広く公開されている重要なプロファイルが作成され、ユーザーアカウントのセキュリティが損なわれたり、その他の小さな問題が発生する可能性があります。000002022

一般ユーザーのUID番号がすべてのLinuxシステムで同じであることを確認し、このユーザーのアクセス権(もちろんルートを含む)にのみ興味がある場合は、USBディスクをext4にフォーマットするだけです。初めてファイルシステムを使用する前に、それをインストールし、通常のユーザーアカウントにルートディレクトリの所有権を割り当てます。

これが/dev/sdX1ファイルシステムを作成したいUSBスティックのパーティションであり、ユーザー名であると仮定すると、使用する<username>USB​​スティックを設定するときにこれを行うことができます。

sudo mkfs.ext4 /dev/sdX1
sudo mount /dev/sdX1 /mnt
sudo chown <username>: /mnt
sudo umount /mnt

ただし、UID / GID番号が一致していることを保証できない場合、またはUSBスティックを使用したいユーザーが複数人の場合は、より複雑な作業を行う必要がありますが、その後もスティックでワンタイム操作を実行する必要があります。 ext4 ファイルシステムを作成します。

私たちは基本アクセス制御リストUSBスティックファイルシステムのルートディレクトリにいるすべての人に、新しいファイルまたはディレクトリへのフルアクセス権を割り当てます。 ACLサポートが有効な状態でスティックをマウントするには、tune2fsファイルシステムメタデータに保存されているデフォルトのマウントオプションを調整する必要があります。

sudo mkfs.ext4 /dev/sdX1
sudo tune2fs -o acl /dev/sdX1
sudo mount /dev/sdX1 /mnt
sudo chown <username>: /mnt
chmod 777 /mnt
setfacl -m d:u::rwx,d:g::rwx,d:o::rwx /mnt
sudo umount /mnt

すべてのシステムがext4ファイルシステムのACLをサポートし、使用しているリムーバブルメディアインストールツールが[インストールを無視]オプションを選択しないと仮定すると、作成したaclUSBスティックが存在するはずです。-rw-rw-rw-権限。生成されたサブディレクトリはですdrwxrwxrwx+。プラス記号は、サブディレクトリにACLがあることを示します。つまり、スティックルート用に設定されたカスタムデフォルト権限セットもサブディレクトリに継承され、同じように機能します。

所有者のUID / GIDは、ファイルシステムでファイルを作成したユーザーのUIDとデフォルトのGIDとまだ一致していますが、ファイルとディレクトリの権限が軽減されているため、これは大きな問題ではありません。

私が予想できる唯一の問題はコピーデフォルトでは、ファイルをUSBスティックにコピーすると、元のファイルのファイル権限をコピーしようとしますが、この場合はコピーしたくありません。

たとえば、システムAで-rw-r--r--権限を持つファイルを作成した場合は、そのファイルをスティックにコピーして、UID番号が一致しないシステムBにスティックを移動します。システムBのファイルを読み続けることができますが、最初に元のファイルを明示的に削除したり名前を変更したりしないと、そのスティックのファイルを上書きできません。しかし、あなたが持っている限りこれを行うことができますファイルがあるディレクトリ

これは本当に便利な機能です。複数のシステムで同じファイルを変更する場合は、実際のファイルを上書きするのではなく、毎回新しいバージョンのファイルを保存することをお勧めします。

関連情報