我想更改一个特定文件夹的所有权,但我想我搞砸了。我运行以下命令:
sudo chown -R ubuntu /
(我想这只会改变我所在的文件夹)
最后的输出行是:
chown: changing ownership of '/proc/2330478/task/2330478': Operation not permitted
chown: changing ownership of '/proc/2330478': Operation not permitted
我可以做些什么来撤销吗?或者有什么办法可以减少混乱?
(闹剧是我正在实现备份机制)我想更改一个特定文件夹的所有权,以通过 win_scp 将备份脚本上传到其中。所以现在我很恐慌。 BR
答案1
您运行的命令正在更改整个系统的权限/。
我很遗憾地说,除非您有备份,否则您必须重新安装整个系统。
答案2
尽管其他答案(或评论)说你注定要失败,但如果你能够从外部设备启动,你很有可能恢复你的系统。它实际上取决于一些因素,例如您安装的系统是否已加密、您的系统是否配置为允许外部驱动器启动以及类似问题。如果不是这样,虽然这会很麻烦并且需要努力,但你仍然有希望。
我曾经有几个具有恢复功能的可启动 USB 驱动器,但即使您没有,您也可以创建甚至从互联网下载可启动的 Linux 映像(推荐可靠的来源,例如您的 Linux 发行版官方主页) 。
此时,使用外部驱动器启动后,您可以将内部“损坏”的根系统挂载到 /tmp/myroot 上:
# mkdir /tmp/myroot
# mount /dev/[whatever device is your internal root] /tmp/myroot
然后您应该能够 chown/tmp/myroot/bin
和上最重要的可执行文件/tmp/myroot/usr/bin
。这将是一个有点长的列表,但您至少需要/tmp/myroot/bin/sh
, /tmp/myroot/bin/login
, /tmp/myroot/bin/rpm
,/tmp/myroot/bin/chown
本身以及可能的其他一些。懒惰的方法是暂时移动它们并将外部恢复目录复制到正在恢复的内部系统:
# mv /tmp/myroot/bin /tmp/myroot/damaged-bin
# mv /tmp/myroot/usr/bin /tmp/myroot/usr/damaged-usrbin
# cp -a /bin /tmp/myroot/bin
# cp -a /usr/bin /tmp/myroot/usr/bin
/var
这还将涉及其他更改,例如恢复(当前安装为/tmp/myroot/var
)和其他目录的所有权。同样,这个列表可能很长。
完成此操作后,您将拥有一个最小可启动系统(作为单用户),并且在再次启动后,考虑到您使用的是基于 rpm 的发行版,您可以使用它rpm --setugids -a
来恢复所有系统文件所有权(您必须手动设置您家中的文件等...)。
此答案旨在提供一种可用于恢复系统的方法的总体思路。所有详细步骤可能需要调整更多目录和文件才能以单用户模式启动内部系统。
PS:从备份中恢复肯定是最好的方法,这是经验教训。即使手动恢复后,这也会像翻新车一样,永远不会一样......
祝你好运!