我错误地将 /bin 更改为用户/组。有没有办法恢复为默认用户/组?我执行的命令是:
chown -R -H -v starlord:starlord /bin
答案1
/bin
使用setuid
位设置的全新安装文件
在全新安装中,以下文件bin
已setuid
设置位(根据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
那么应该可以恢复到原来的状态