ディスク不足をテストするために、ファイルベースのサイズが制限されたファイルシステムを次のように設定してみました。
$ dd if=/dev/zero of=file.fs bs=1MiB count=1
$ mkfs.ext4 file.fs
$ udisksctl loop-setup -f file.fs
Mapped file file.fs as /dev/loop1.
$ udisksctl mount --options rw -b /dev/loop1
Mounted /dev/loop1 at /media/myuser/29877abe-283b-4345-a48d-d172b7252e39
$ ls -l /media/myuser/29877abe-283b-4345-a48d-d172b7252e39/
total 16
drwx------ 2 root root 16384 Dec 2 22:08 lost+found
しかし、ご覧のとおり、ルートでのみ書くことができます。コマンドを実行しているユーザーが書き込めるようにするにはどうすればよいですか?
chown
「ジョブは許可されていません」というメッセージも表示されるため、できませんchmod
。
udisksctlのいくつかのオプションを試してみましたが、-o uid=<id>
許可されていないインストールオプションでエラーが発生しました。
通常のユーザーとして実行できる必要があるため、rootまたはsudoは使用できません。
Ubuntu 22.04.1を使用しています。
答え1
はい、少し不機嫌そうです:) しかし、この問題を解決することができます:
mkfs.ext4
ファイルシステムの初期内容を含むディレクトリを指定するオプションを使用します-d directory/
。後で入力するディレクトリを既に知っている場合は、良い開始点になります。
mkfs.xfs
サポート-p protofile
;これがまさにあなたが望むものかもしれません。ファイルにはmyprotofile
次のコンテンツのみが含まれます。
thislinejustforbackwardscompatibility/samefornextline
1337 42
d--777 1234 5678
最初の行は以前のバージョンとの互換性のための文字列なので無視されます。 2行目には無視される2つの数字を含める必要があります。 (man mkfs.xfs
私の頭の上で覚えているよりも詳細を参照してください。)
3行目には、filemode uid gid
ルートディレクトリを記述するタプルが含まれています。 1234を目的のユーザーIDに置き換え、5678を希望のグループIDに置き換えます。
フォローアップ
mkfs.xfs -p myprotofile -f file.fs
動作する必要があります(ただし、デフォルト設定の場合、イメージファイルのサイズは16 MB以上でなければなりませんmkfs.xfs
)。
dd if=/dev/zero of=file.fs bs=1MiB count=16
mkfs.xfs -p myprotofile -f file.fs
udisksctl loop-setup -f file.fs
私のシステムで動作し、自動的にファイルシステムrwをマウントします(しかし、これは必ずしもあなたのシステムに当てはまるわけではありません--options rw
。