Answers:
简而言之:不。
您需要从备份中还原。(某些备份工具可能具有仅还原权限的选项,其他备份工具可以列出具有其权限的备份文件,您可以使用它来修复系统。)
如果没有备份,则需要手动修复所有问题。
sudo chown -R user:user /
,很可能是系统连接异常严重,以致无法从备份中还原。
chown
,很可能您将无法从头开始安装整个系统,而无法做任何事情。该系统甚至没有root
帐户,sudo
因此无法正常工作。引导至单用户外壳程序可能值得,但不要指望它能工作。
sudo
甚至su
会继续功能时,其所有相关文件都拥有的user
是一个不同的问题(可能不是因为除其他事项外的exe文件的SUID位将会消失)。
仅当您知道目录下每个文件和目录的用户和组所有权时/
。
即使这样,您也已经破坏了需要由root拥有的关键系统文件的所有权,包括sudo
命令。您可能需要将硬盘驱动器安装在另一个系统上,并且要注意,另一个系统可能不会像刚刚破坏的系统那样具有相同的UID和GID映射。
如果可以,请制作整个硬盘的副本,然后重新安装操作系统。完成此操作后,您可以尝试将文件复制回新擦除的系统并恢复其所有权。您可能可以假设(尽管不是100%可靠),下/home/foo
的所有内容都由user拥有foo
,并且下的每个邮件假脱机文件/var/mail
均由适当的用户拥有(如果系统上有电子邮件)。/home
根据您对系统所做的操作,可能无需恢复大多数不属于该目录的文件就可以摆脱困境。
然后开始培养的仔细检查你下运行任何命令的习惯sudo
之前你打Enter。
如果您的发行版基于RPM,则只能还原rpm软件包安装的文件。
要还原所有程序包权限:
rpm --setperms -a
恢复所有程序包所有者(用户/组):
rpm --setugids -a
如果-a没有运行,则可以执行bash循环:
权限:
for x in $(rpm -qa); do rpm --setperms $x; done
对于所有者:
for x in $(rpm -qa); do rpm --setugids $x; done
摘自:http : //www.sysadmit.com/2016/10/linux-restaurar-permisos-de-un-paquete.html
sudo chown -R user:user ..
如果您位于文件系统根目录的下一级,则以下命令可能具有与此处提到的命令相同的效果。不要尝试这样的事情。