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

杰森F4

我用手术刀恢复文件。输入磁盘是我使用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)。

苏多杜斯

原始答案

您不能更改单个文件(或目录)的所有权。挂载时会设置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六个字段中每个字段的详细说明,请参见

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将 .config 文件的权限/所有权从“root”更改为我(“用户名”)?

如何将已安装程序的所有权更改为我的帐户?

Docker-由Docker启动的容器-将文件所有权更改为root

sudo tar将提取的文件所有权更改为未知用户

将文件夹所有权从根更改为用户

将家中所有文件和文件夹的所有权错误地更改为“ root”

如何恢复/ var下所有文件的默认组/用户所有权?

恢复在/ usr,Void Linux下文件的已更改所有权

将整个操作系统的所有权更改为root:root

sudo cp -a将所有权更改为root(而不是保留原始用户)

docker-compose postgres卷将所有权更改为gitlab-runner

更改文件的组所有权-用户管理

无法更改文件所有权

更改文件作为组用户的所有权

同时移动文件和更改所有权

更改只读文件系统的所有权

递归更改文件所有权的问题

如何更改 bintray 包所有权

更改目录的所有权

如何将值的所有权从Rust转移到C代码?

Rsync和文件所有权-不要更改服务器上的所有权

如何使用Boost库更改文件所有权?

如何授予用户更改目录中文件/目录所有权的权限

了解Docker中的用户文件所有权:如何避免更改链接卷的权限

如何在Ubuntu中更改文件的组所有权?

作为普通用户,我如何能够更改文件的所有权?

如何在.reg文件中以admin身份执行cmd以更改所有权

当chown说“无效的用户:'-R'”时,如何更改文件所有权?

Docker Wordpress tar:<文件>无法将所有权更改为uid 33,gid 33:不允许操作