web-dev-qa-db-ja.com

Scalpelによって回復されたファイルの所有権をexfatパーティションに変更する方法は?

私はファイルを回復するためにメスを走らせました。入力ディスクは、ddrescueを使用して作成した、障害のあるWindowsディスクのコピーです。 (メスからの)出力ディレクトリは、Linuxディスクのexfatパーティションにあります。 Windowsはそのパーティションを表示および読み取ることができるため、exfatを使用しました。これらはWindowsからのものです。

ファイルの所有権を変更できません。それらはrootが所有しています。

たとえば、ディレクトリ/media/me/restored/output/jpg-1-0
-rwxrwxrwx 1 root root 2983 Dec 29 23:14 00003483.jpg

$Sudo chown me 00003483.jpg
chown: '00003483.jpg'の所有権を変更:操作は許可されていません

$Sudo chattr -i 00003483.jpg
chattr:00003483.jpgのフラグの読み取り中に機能が実装されていません

ディレクトリの所有権も変更できません。

私もこれをSudo su -として試しました

回復した.jpgファイルをeog(コマンドライン-画像ビューアー)で開くことができますが、Kria(Linux画像エディター、GUI)でファイルを開くことができません。

メスのWebサイトにファイルのアクセス許可の変更方法が表示されないのはなぜですか?問題はexfatとの非互換性ですか?

助けてくれてありがとう。

更新

パーティションをアンマウントし、「復元された」ディレクトリの所有権を自分のユーザーIDに変更してから、Sudo mount -o rw,user,uid=1000,dmask=007,fmask=117 /dev/sdb4 /media/me/restoredを実行しても機能しません。 「復元された」ディレクトリは再びrootによって所有されるようになり、上記の手順を実行してもまったく同じ結果が得られます。

UPDATE-デバッグ情報の追加

lsblk -f


sdb                                                               
├─sdb1 vfat                  xxxx-xxxx                            /boot/efi
├─sdb2 ext4                  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /
├─sdb3 swap                  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx [SWAP]
└─sdb4 exfat      SSD-D      xxxx-xxxx                            /media/me/rest  

更新

受け入れられた回答に関して、この問題は最初の更新で上記のmountコマンドを使用して修正されましたが、正確には私が知りません。初めてそれを行ったとき、ファイルの所有権はまだrootでした。ターミナルからここにコピーしたので、mountコマンドは同じです。復元されたすべてのファイルの所有者は(ルートではなく)私です。

1
JasonF4

元の答え

個々のファイル(またはディレクトリ)の所有権を変更することはできません。 Microsoftファイルシステム(exFAT、Fat32、およびNTFS)の所有権とアクセス許可はマウント時に設定され、それを変更する(Linuxの場合)唯一の方法は、ファイルシステムを再マウントする(またはアンマウントして再度マウントする)ことです。

詳細は このリンク をご覧ください。

フィードバック後に編集

コンピュータから出力:

lsblk -f

loop0                                                             
└─cryptswap1
       swap                  cbxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx [SWAP]
sda    isw_raid_m                                                 
├─sda1 vfat       SYSTEM_DRV 90xx-xxxx                            
├─sda2 isw_raid_m                                                 
├─sda3 ntfs       Windows    E2xxxxxxxxxxxxxx                     /media/me/Wind
├─sda4 exfat      Restored   B4xx-xxxx                            /media/me/Rest
└─sda5 ntfs       WINRE_DRV  B2xxxxxxxxxxxxxx                     
sdb                                                               
├─sdb1 vfat                  A3xx-xxxx                            /boot/efi
├─sdb2 ext4                  3bxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /
├─sdb3 swap                  3cxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx [SWAP]
└─sdb4 exfat      SSD-D      4Cxx-xxxx                            /media/me/rest
sdc                                                               
├─sdc1 vfat       ESP        A2xx-xxxx                            
├─sdc2 vfat       DIAGS      9Exx-xxxx                            
├─sdc3 ntfs       WINRETOOLS 72xxxxxxxxxxxxxx                     
├─sdc4 ntfs       OS         92xxxxxxxxxxxxxx                     
└─sdc5

cat /etc/mtab  # edited to focus on the relevant lines

/dev/sdb4 /media/me/restored fuseblk rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096 0 0

実行中のオペレーティングシステムのあるドライブのexfatパーティションのユーザーID(0 <--->ルート)を変更していません

/dev/sdb2 / ext4 rw,relatime,errors=remount-ro,stripe=256 0 0
/dev/sdb1 /boot/efi vfat rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 0

比較のために、私のコンピューターからの次の出力を参照してください

sudodus@bionic64 ~ $ lsblk -f /dev/sdc
sdc         iso9660 Xubuntu Core 19.10 - AMD64 2019-10-17-15-54-31-00               
├─sdc1      iso9660 Xubuntu Core 19.10 - AMD64 2019-10-17-15-54-31-00               /media/sudodus/Xubuntu Core 19.10 - AMD64
├─sdc2      vfat                               866D-0A62                            
└─sdc3      exfat   USBDATA                    5673-C08D                            /media/sudodus/USBDATA

私のexfatファイルシステムは/dev/sdc3にあり、権限を検査します。

sudodus@bionic64 ~ $ grep 'sdc3' /etc/mtab
/dev/sdc3 /media/sudodus/USBDATA fuseblk rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096 0 0

パーティションをアンマウントし、

sudodus@bionic64 ~ $ Sudo umount /dev/sdc3
[Sudo] lösenord för sudodus: 

リンクされた回答(実際のデバイス/ dev/sdc3用に変更された)の指示に従ってパーティションをマウントします。

sudodus@bionic64 ~ $ Sudo mount -o rw,user,uid=1000,dmask=007,fmask=117 /dev/sdc3 /mnt/sd1
Fuse exfat 1.2.8

所有権(はい、私です)と権限をls -lで確認します

sudodus@bionic64 ~ $ Sudo ls -l /mnt/sd1
totalt 128
-rw-rw---- 1 sudodus root 29 dec 29 17:49 hej.txt

サブディレクトリを作る

sudodus@bionic64 ~ $ mkdir /mnt/sd1/subdir

(通常のユーザーとして)ファイルを作成します。

sudodus@bionic64 ~ $ echo "Hello World" > /mnt/sd1/hello.txt

最後に、それが機能したことを確認し、所有権と権限を確認します

sudodus@bionic64 ~ $ Sudo ls -l /mnt/sd1
totalt 384
-rw-rw---- 1 sudodus root     29 dec 29 17:49 hej.txt
-rw-rw---- 1 sudodus root     12 dec 30 15:56 hello.txt
drwxrwx--- 1 sudodus root 131072 dec 30 15:54 subdir
sudodus@bionic64 ~ $ 

Exfatを使用した/dev/sdb4の推奨コマンドライン

私はあなたのユーザーIDが1000(最初に作成されたユーザーID)であると想定しています。

確認する

grep "^$USER" /etc/group

必要に応じてuid=1000を変更します。

Sudo umount /dev/sdb4
Sudo mkdir /mnt/sd4   # create mount point (only once)
Sudo mount -o rw,user,uid=1000,dmask=007,fmask=117 /dev/sdb4 /mnt/sd4

編集2

問題がある場合は、exfatツールの現在のバージョンが必要な場合があります。

Sudo apt update
Sudo apt install exfat-utils exfat-Fuse

編集3

起動時にexfatパーティションを自動的にマウントしたい場合があります。その場合、ファイル/etc/fstabの次の行をお勧めします。

# partition with exfat file system
UUID=4Cxx-xxxx  /mnt/sd4  exfat  defaults,rw,user,uid=1000,dmask=007,fmask=117  0  0

ファイルシステムの実際のUUIDと一致するようにUUID=4Cxx-xxxxを変更します。

6つのフィールドの詳細については、man fstabを参照してください。

3
sudodus