我不小心将/bin
目录移至/usr/bin/bin
,无论如何,我设法将其移回原来的位置
# /usr/bin/bin/mkdir /bin
# /usr/bin/bin/mv /usr/bin/bin /
然后我能够以 root 身份登录,但我无法su
从我的用户登录,它给了我一个身份验证错误。我以 root 身份运行chmod +s /bin/su
,chmod u+s /bin/su
它修复了它。
我注意到的另一件事是我也不能ping
;它给了我这个错误:
$ ping 192.168.1.1
ping: icmp open socket: Operation not permitted
这是我的 ping 文件:
-rwxr-xr-x 1 root root 44K Jun 30 20:38 /bin/ping
我想我搞乱了文件夹中的所有权限和 SGID /bin
。有没有什么办法解决这一问题? (除了格式化)
仅供记录,我使用的是 64 位 Debian 8。
答案1
我会将基本系统引导到另一个目录。
debootstrap --variant=minbase --arch=amd64 jessie /tmp/bootstrap http://ftp.us.debian.org/debian/
然后将所有文件从 /tmp/bootstrap/bin 复制到 /bin 并保留权限。
cp -a /tmp/bootstrap/bin/* /bin/
现在 /bin 中的许多文件(和基本文件)应该没问题,并且您应该能够使用时间戳查看哪些文件没有被触及(旧文件可能具有错误的权限)。
其余的你可以使用
apt-get install --reinstall PACKAGE
将权限设置回来。
您可以使用以下命令找到文件中的包
dpkg -S /path/to/file
这甚至是可编写脚本的...
祝你好运!