有没有办法恢复 /bin 默认所有者?

有没有办法恢复 /bin 默认所有者?

我错误地将 /bin 更改为用户/组。有没有办法恢复为默认用户/组?我执行的命令是:

chown -R -H -v starlord:starlord /bin

答案1

/bin使用setuid位设置的全新安装文件

在全新安装中,以下文件binsetuid设置位(根据find /bin -perm -4000):

/bin/ping
/bin/ping6
/bin/su
/bin/umount
/bin/fusermount
/bin/mount
/bin/ntfs-3g

笔记:您可能安装了会添加到该列表的软件(或者由于某种原因设置了位setgid),因此以下操作可能无法完全起作用,因为它会将setuid不在该列表中的任何内容的位删除。

纠正问题

sudo chown -R -H root:root /bin
sudo chmod u+s /bin/ping /bin/ping6 /bin/su /bin/umount /bin/fusermount /bin/mount /bin/ntfs-3g

避免将来出现问题

修改 中的任何内容通常都不是好主意/bin,因为 是为通过包管理器安装和维护的文件保留的。包管理器(而不是您)拥有/bin

如果你删除了某些东西,依赖它的东西就会被破坏。如果你更改或添加了某些东西,你的更改可能会在将来通过包管理器更新时被抹去。

相反,将对所有用户有用的程序存储在/usr/local/bin和这样的地方/usr/local/sbin。将只对一个用户有用的程序存储在~user/bin。这些位置分别由系统管理员和个人用户拥有和管理。

如果你仍然想忽略该建议,修改 中的正确方法/bin是使用sudo。例如,你可以/bin使用以下命令将文件复制到:

sudo cp program /bin

您可以使用以下方法删除它:

sudo rm /bin/program

答案2

尝试运行sudo chown -R -H root:root /bin

假设你还没有运行任何chmod命令,/bin那么应该可以恢复到原来的状态

相关内容