我跑手术刀来恢复文件。输入磁盘是我使用 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)是重新挂载文件系统(或卸载并再次挂载)。
在此链接中查看详细信息。
反馈后编辑
从您的计算机输出:
您没有更改运行操作系统的驱动器上 exfat 分区的用户 ID (0 <---> root)
为了比较,请参阅我的计算机的以下输出
我的 exfat 文件系统在 中
/dev/sdc3
,我检查了权限,卸载分区,
根据链接答案中的说明安装分区(针对实际设备 /dev/sdc3.
检查所有权(是的,是我)和权限
ls -l
创建一个子目录
创建一个文件(作为普通用户),
最后验证它是否有效并检查所有权和权限
/dev/sdb4
为您的 exfat建议的命令行我假设您的用户 ID 是 1000(创建的第一个用户 ID),
检查
并
uid=1000
在必要时进行修改。编辑 2
如果你有问题,你可能需要当前版本的 exfat 工具,
编辑 3
您可能希望在启动时自动挂载您的 exfat 分区。在这种情况下,我建议在您的文件中使用以下几行
/etc/fstab
,修改
UUID=4Cxx-xxxx
以匹配文件系统的实际 UUID。有关
man fstab
六个字段中每个字段的详细说明,请参阅。