バックグラウンド
ファイル システムをオンザフライで作成および破棄するテスト スクリプトがあり、一連のパフォーマンス テストで使用されます。
スクリプトを root として実行することを避けるために/dev/testdisk、特定のユーザーが所有するディスク デバイスtestuserと、適切なエントリが にあり/etc/fstabます。
$ ls -l /dev/testdisk
crw-rw---- 1 testuser testuser 21, 1 Jun 25 12:34 /dev/testdisk
$ grep testdisk /etc/fstab
/dev/testdisk /mnt/testdisk auto noauto,user,rw 0 0
これにより、通常のユーザーがディスクをマウントおよびアンマウントできるようになります。
質問
ルート ディレクトリが によって所有されるように、スクリプト ( として実行される) でbtrfsファイル システムtestuserをプログラムで作成したいと考えています。/dev/testdisktestuser
$ mount /dev/testdisk /mnt/testdisk
$ ls -la /mnt/testdisk
total 24
drwxr-xr-x 3 testuser testuser 4096 Jun 25 15:15 .
drwxr-xr-x 3 root root 4096 Jun 23 17:41 ..
drwx------ 2 root root 16384 Jun 25 15:15 lost+found
これは、スクリプトをルートとして実行せず、スクリプト内で権限昇格 (の使用sudo) に頼ることなく実行できますか?
他のファイルシステムとの比較
ext{2,3,4} を使用すると、次のコマンドを使用して、現在のユーザーがルート ディレクトリを所有するファイル システムを作成できます。
mkfs.ext{2,3,4} -F -E root_owner /dev/testdisk
回避したい回避策 (可能であれば)
btrfs-convertこのツールを使用して、既存の (空の可能性がある) ext{2,3,4} ファイル システムを btrfs 形式に変換できることを認識しています。スクリプトでこの回避策を使用できます (最初に ext4 ファイルシステムを作成し、すぐに brtfs に変換します) が、btrfs ファイル システムを直接作成する方法がある場合は避けたいと思います。