fro*_*hem 19 command-line permissions chown
如果我运行:
sudo chown -R user:user /
Run Code Online (Sandbox Code Playgroud)
我可以将它恢复到运行之前的状态吗?
Mat*_*Mat 25
简而言之:没有。
您需要从备份中恢复。(某些备份工具可能具有仅恢复权限的选项,其他工具可以列出具有其权限的备份文件,您可以使用它来修复您的系统。)
如果您没有备份,则需要手动修复所有这些。
仅当您知道目录下每个文件和目录的用户和组所有权时/
。
即便如此,您已经破坏了需要由 root 拥有的关键系统文件的所有权,包括sudo
命令。您可能需要在另一个系统上安装硬盘驱动器——并注意另一个系统可能不会与您刚刚破坏的系统具有相同的 UID 和 GID 映射。
如果可以,请复制整个硬盘驱动器,然后重新安装操作系统。完成此操作后,您可以尝试将文件复制回新擦除的系统并恢复其所有权。您可能会假设(尽管不是 100% 可靠)下面的所有/home/foo
内容都归 user 所有foo
,并且下面的每个邮件假脱机文件/var/mail
都归相应的用户所有(如果系统上有电子邮件)。您可能无需恢复不在 下的大多数文件就可以逃脱/home
,这取决于您对系统所做的工作。
然后开始培养的仔细检查你下运行任何命令的习惯sudo
之前你打Enter。
小智 6
如果您的发行版是基于 RPM 的,您只能恢复由 rpm 包安装的文件。
恢复所有包权限:
rpm --setperms -a
Run Code Online (Sandbox Code Playgroud)
恢复所有包所有者(用户/组):
rpm --setugids -a
Run Code Online (Sandbox Code Playgroud)
如果 -a 没有运行,你可以执行一个 bash 循环:
对于权限:
for x in $(rpm -qa); do rpm --setperms $x; done
Run Code Online (Sandbox Code Playgroud)
对于业主:
for x in $(rpm -qa); do rpm --setugids $x; done
Run Code Online (Sandbox Code Playgroud)
摘自:http : //www.sysadmit.com/2016/10/linux-restauar-permisos-de-un-paquete.html