AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1199473
Accepted
JasonF4
JasonF4
Asked: 2019-12-30 21:19:36 +0800 CST2019-12-30 21:19:36 +0800 CST 2019-12-30 21:19:36 +0800 CST

如何将 Scalpel 恢复的文件的所有权更改到 exfat 分区?

  • 772

我跑手术刀来恢复文件。输入磁盘是我使用 ddrescue 制作的失败 Windows 磁盘的副本。输出目录(来自手术刀)位于我的 Linux 磁盘上的 exfat 分区上。我使用 exfat 是因为 Windows 可以看到和读取该分区 - 这些分区来自 Windows。

我无法更改文件的所有权。它们归根所有。

例如,在目录中/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 -

我可以使用 eog(命令行 - 图像查看器)打开恢复的 .jpg 文件,但无法使用 Kria(Linux 图像编辑器,GUI)打开文件。

为什么手术刀上的网站不告诉你如何更改文件权限?问题是与 exfat 不兼容吗?

谢谢你的帮助。

更新

卸载分区,将“已恢复”目录的所有权更改为我的用户 ID,然后运行sudo mount -o rw,user,uid=1000,dmask=007,fmask=117 /dev/sdb4 /media/me/restored不起作用。“恢复的”目录现在再次归 root 所有,尝试上面列出的步骤我得到了完全相同的结果。

更新 - 添加调试信息

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 命令是相同的,因为我将它从终端复制到这里。所有恢复的文件现在都归我所有(不是 root)。

data-recovery chown ddrescue
  • 1 1 个回答
  • 1085 Views

1 个回答

  • Voted
  1. Best Answer
    sudodus
    2019-12-31T00:45:36+08:002019-12-31T00:45:36+08:00

    原始答案

    您不能更改单个文件(或目录)的所有权。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 <---> root)

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

    /dev/sdb4为您的 exfat建议的命令行

    我假设您的用户 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=4Cxx-xxxx以匹配文件系统的实际 UUID。

    有关man fstab六个字段中每个字段的详细说明,请参阅。

    • 4

相关问题

  • 砖头电脑

  • 使用 Photorec 将数据恢复到外部驱动器

  • 用 rm 删除的文件/目录可以恢复吗?

  • 如何恢复被删除的文件?

  • 恢复 EXT4 分区

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve