web-dev-qa-db-fra.com

Comment changer la propriété des fichiers récupérés par Scalpel sur la partition exfat?

J'ai couru scalpel pour récupérer des fichiers. Le disque d'entrée est une copie d'un disque Windows défaillant que j'ai créé à l'aide de ddrescue. Le répertoire de sortie (du scalpel) se trouve sur une partition exfat sur mon disque Linux. J'ai utilisé exfat parce que Windows peut voir et lire cette partition - et celles-ci proviennent de Windows.

Je ne peux pas changer la propriété des fichiers. Ils appartiennent à root.

Par exemple, dans le répertoire /media/me/restored/output/jpg-1-0
-rwxrwxrwx 1 root root 2983 Dec 29 23:14 00003483.jpg

$Sudo chown me 00003483.jpg
chown: changement de propriétaire de '00003483.jpg': opération non autorisée

$Sudo chattr -i 00003483.jpg
chattr: Fonction non implémentée lors de la lecture des drapeaux sur 00003483.jpg

Je ne peux pas non plus changer la propriété du répertoire.

J'ai aussi essayé ça comme Sudo su -

Je peux ouvrir un fichier .jpg récupéré avec eog (ligne de commande - visionneuse d'images), mais je ne peux pas ouvrir les fichiers avec Kria (un éditeur d'image Linux, GUI).

Pourquoi les sites Web sur scalpel ne vous disent-ils pas comment modifier les autorisations de fichier? Le problème est-il une incompatibilité avec exfat?

Merci pour toute aide.

MISE À JOUR

Démonter la partition, changer la propriété du répertoire "restauré" en mon ID utilisateur, puis exécuter Sudo mount -o rw,user,uid=1000,dmask=007,fmask=117 /dev/sdb4 /media/me/restored ne fonctionne pas. Le répertoire "restauré" appartient à nouveau à root, et j'obtiens exactement les mêmes résultats en essayant les étapes répertoriées ci-dessus.

UPDATE - ajout d'informations de débogage

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  

MISE À JOUR

Concernant la réponse acceptée, ce problème a été corrigé avec la commande mount donnée ci-dessus sous la première mise à jour, et autre chose - exactement ce que je ne sais pas. Quand je l'ai fait la première fois, la propriété des fichiers était toujours root. La commande de montage est identique, comme je l'ai copiée du terminal ici. Tous les fichiers récupérés appartiennent maintenant à moi (pas root).

1
JasonF4

Réponse originale

Vous ne pouvez pas changer la propriété de fichiers (ou répertoires) individuels. La propriété et les autorisations dans les systèmes de fichiers Microsoft (exFAT, Fat32 et NTFS) sont définies lors du montage, et la seule façon de le changer (pour Linux) est de remonter le système de fichiers (ou de le démonter puis de le remonter).

Voir les détails sur ce lien .

Modifier après les commentaires

Sortie depuis votre ordinateur:

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

Vous n'avez pas changé l'ID utilisateur (0 <---> root) de la partition exfat sur le lecteur avec le système d'exploitation en cours d'exécution

/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

Pour comparaison, voir la sortie suivante de mon ordinateur

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

Mon système de fichiers exfat est dans /dev/sdc3, et j'inspecte les autorisations,

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

démonter la partition,

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

montez la partition selon les instructions de la réponse liée (modifiée pour le périphérique réel/dev/sdc3.

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

vérifier la propriété (oui c'est moi) et les permissions avec ls -l

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

créer un sous-répertoire

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

créer un fichier (en tant qu'utilisateur normal),

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

enfin vérifier que cela a fonctionné et vérifier la propriété et les autorisations

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 ~ $ 

Ligne de commande suggérée pour votre /dev/sdb4 avec exfat

Je suppose que votre ID utilisateur est 1000 (le premier ID utilisateur créé),

vérifier avec

grep "^$USER" /etc/group

et modifiez uid=1000 si nécessaire.

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

Modifier 2

Si vous avez des problèmes, vous aurez peut-être besoin des versions actuelles des outils exfat,

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

Modifier 3

Vous voudrez peut-être monter votre partition exfat automatiquement au démarrage. Dans ce cas, je suggère les lignes suivantes dans votre fichier /etc/fstab,

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

Modifier UUID=4Cxx-xxxx pour correspondre à l'UUID réel du système de fichiers.

Voir man fstab pour une description détaillée de chacun des six champs.

3
sudodus