意外地以root身份运行“chown www-data:www-data / -R”

我几秒钟前刚刚跑过这个,我尽快做到了ctrl-c,当我意识到我开始做什么的时候。

到目前为止,在开始经历的唯一目录是/ bin

我害怕做任何事情,到目前为止我意识到我不能使用“su”作为我的普通用户了。

幸好我还有另一个根端打开,该怎么办?

    / bin /中的大部分内容都应该由root:root拥有,所以如果运行以下命令,则可以修复这些文件的所有权:

    chown root:root -R /bin/ 

    您可能还想确保setuid位在/ bin / su上正确设置,您可以使用以下方法修复该位:

     chmod 4755 /bin/su 

    Redhat用户:

     chown 0:0 /bin/rpm && rpm -qa | xargs rpm --setugids 

    Debian / Ubuntu用户:

     chown 0:0 /bin/* /usr/bin/* chown daemon:daemon /usr/bin/at chown 0:utmp /usr/bin/screen chmod 02755 /usr/bin/screen chmod u+s /bin/fusermount /bin/mount /bin/su /bin/mount chmod u+s /usr/bin/sudo /usr/bin/passwd screen 

    在屏幕运行时至less要这样做两次:

     dpkg --get-selections | awk '{ if ($2 == "install") print $1}' \ | xargs apt-get install --reinstall -- 

    非常注意输出,因为如果它抱怨某些权限错误的话,应该在另一个屏幕窗口中修复它。

    屏幕上的崩溃过程:

     Control+A - command key Control+A a - emit a control+A Control+A n - next "screen" Control+A c - create "screen" 

    Solaris用户:

    你搞砸了

     pkgchk -R / -f -a 

    将重置所有的权限,但setuid-ness仍然会被打破。 使用备份或其他solaris机器来查找setuid / setgid脚本和文件并手动修复它们。

    关于备份的重要事项

    你能恢复它们吗,不是你拿走它们吗?

    其他人已经给你build议备份,但我想补充说,你应该testing它们。 如果您使用的是unixish系统,则无法定期将文件转储到其他计算机上,并确保一切正常。

    请注意,任何受影响的二进制文件上的set-uid标志也可能已被删除; 这是chown的安全特性。 检查一些其他的系统哪些二进制文件具有set-uid或set-gid标志,并确保将它们设置在二进制文件中。

    我正要解释使用RPM来重置文件权限的细节,但是我发现了一个有更多信息的网站。 它也提到Ubuntu / Debian(所以.debs一般)不支持它。

    但总的来说,你所寻找的select将是一致的:

     rpm --setugids {packagename} 

    如果这是一个debian系统,我会重新安装一切。

    你有一个工作备份? 如果是,请恢复您的bin文件夹。

    否则,请查看安装了相同版本ubuntu的另一个盒子,并find您在工作安装中find的东西。

    试试这个:在/ bin目录下find所有的www-data

     # find /bin -user www-data 

    然后将www-data更改回原始用户

     # find /bin -user www-data -exec chown ORiginalUser {} \; # then change www-data back to oringal group # find /bin -group www-data -exec chgrp originaluser {} \; 

    感谢所有的好评,现在一切似乎都已经解决了。

    / bin / su曾经chmod'd工作到4755(不知道为什么chown改变了suid位)

    我没有注意到,但它也开始通过/ home目录工作,但这是一个很容易的修复(只需设置用户:组为每个目录用户)