闯了大祸,根目录权限变成我自己了。

99 天前
 uuair

我的磁盘空间不够了,之前分区的时候没搞好,根目录给了 1.7T 一直闲置,为了下载一个 700 多 G 的文件,我简单的 mount 到了一个下载目录下,transmission 下载的时候报错说权限问题,我直接 chown -R uuair:www-data 了,我还纳闷,一个空目录,怎么会卡住了。。。结果 sudo 的时候发现错误,然后,./目录下大部分文件都不是 root 的了,尤其是/etc 下,所有的都是我了。

好了,现在怎么办?

第一:/home文件夹下有 3.2T 的文件,我没有其他的硬盘可以备份。

第二:我运行了 12 个 docker ,其中有几个配置了很久,可能我自己都记不清了,这部分怎么保留?

我使用了docker commit -p 然后 docker save -o ~/container-backup.tar container-backup的方法保存成 tar 文件了,但现在拷贝不出来

8878 次点击
所在节点    Ubuntu
50 条回复
Exxfire
99 天前
@uuair 如楼上所说,尝试进单用户模式,操作一下。
Geon97
99 天前
chown -R 的威力如同 rm -rf
iyiluo
99 天前
先别重启,有个 docker-autocompose 应用,能把你正在跑的容器转成 docker-comopse.yml ,可以备份当前容器的各种配置,不过你的系统已经烂了,试试能不能把 autocompose 镜像拉下来,然后逐个备份容器生成 yml 文件
guo4224
99 天前
找个虚拟机,备份一下权限,然后 livecd 进去恢复权限试试?
konakona
99 天前
少侠好功力。
你没有进行磁盘快照备份吗?
下次记得千万别飘了,少个.区别太大代价太承重 2333

权限乱了以后其实更难恢复,听上去是 centOS ,更严,2333
elechi
99 天前
拿个 u 盘做个 livecd 启动,然后把磁盘挂载到 livecd 系统中,改文件权限
smallparking
99 天前
u 盘启动
如果不会就摇人吧
la2la
99 天前
太麻烦了
如果是云服务的话,临时租个内网服务器,在挂个 oss ,备份好现有数据后,直接重装系统和服务
如果物理服务器,就借个电脑搞一下,几 T 数据用不了多少时间
life90
99 天前
我倒有个傻瓜点的方法。不嫌麻烦的话。
1 ,首先解决 sudo 。或者以 root 用户登录。这是必须要做的。
2 ,安装同版本同类型 Linux 发行版。参照权限重新恢复。或者这个安装好的同类型版本 Linux 的权限每个文件 acl 用 shell 打印出来导出成文件。
3 ,在旧系统,以同样脚本恢复回去。其实这样做完肯定还有问题,只能自己慢慢查日志去解决了。
如果觉得这样解决时间太长,重新安装配置其实是最优选择。
0x5c0f
99 天前
一般系统提供的包管理软件,以 rpm 为例
--setperms set permissions of files in a package
--setugids set user/group ownership of files in a
这个是可以修复权限的,可以去试试
yyyb
99 天前
没 rm -rf 就不叫事儿
jqtmviyu
99 天前
本地设备?

拿个 u 盘 livecd 改回来呗
uuair
99 天前
@jqtmviyu #32 怎么改回来啊??所有的目录都是我自己了,手动我不知道怎么改啊
inframe
99 天前
全部改成 777 ,文件拖出来,重装系统
zuotun
99 天前
还好只是 chown ,如果是 chmod -R 那就惨了得对着具体文件恢复,你这样找个正常的相同系统直接对着恢复就行。恢复必须要 liveCD 环境,随便找个闲置的存储设备插进去启动就行,另外 sudo 有问题不代表就不能用了,这只是一个软件包没有也能切到 root 。
uuair
99 天前
@kk2syc #15 这个我做了,开了两个 ssh 进去,但就是不成。。。pkexec 哪里始终无法运行。
cybort
99 天前
如果所有者都是你,那不需要 sudo 啊,直接 chown 改
COW
99 天前
#4 根据错误提示,先用 su 拿到 root ,然后用 chmod 4755 和 chown 把这个文件改一下,把 sudo 问题解决了先。
feedcode
99 天前
1. 把你自己的 group 加到 admin rules ,以 ubuntu 为例, 只有 sudo/admin group 才行
cat /usr/share/polkit-1/rules.d/49-ubuntu-admin.rules
polkit.addAdminRule(function(action, subject) {
return ["unix-group:sudo", "unix-group:admin"];
});

然后再 pkttyagent -p $(echo $$) |pkexec chown root /path/to/file
(ctrc+c to abort pkttyagent )

2. 如果你在 docker 组里
docker run -it --privileged --name fixperm -v /:/host busybox
然后编辑 /host/path/to/file

3. 重启时候编辑 Grub menu ,append to kernel command line
systemd.debug-shell=1
OR
init=/bin/sh
uuair
98 天前
@cybort #37
uuair@uu-ubu:/etc$ ls -l sudoers
-r--r----- 1 uuair www-data 1800 1 月 30 2024 sudoers
chown root:root /etc/sudoers
chown: changing ownership of '/etc/sudoers': Operation not permitted

怎么可能。。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/1095187

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX