我正在使用 Ubuntu。
我运行了以下命令。但过了一会儿,我停止了它,因为我觉得它花费的时间太长了。
sudo chown -R $USER:$USER /
这使得 sudo 命令停止工作。因此,我找到了一种解决方案,通过在紧急控制台中使用此命令将 sudo 恢复为 root(我们不能使用 root 的 SSH):
chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
然后我在网上看到评论说建议重新安装操作系统,因为许多权限都会被改变。
但是,当我find / -user [username]
在服务器上运行第一个 chown 命令之前保存的图像时,我发现只有少数文件具有不同的权限。为什么会这样?为什么只有文件被/usr/bin/sudo
更改,而其他文件没有更改?
用户权限不同的文件只有/proc
和/sys/fs/cgroup/systemd/user/
。它们包含新文件,这些新文件的用户权限已授予我所拥有的用户。这看起来正确吗?还是我需要重新安装操作系统,因为这些文件与保存的映像不同?
谢谢!
答案1
大多数(但不是全部)/bin 和 /usr/bin 文件(事实上,大多数预安装的 OS 文件)都归root:root
(根据 FHS)所有,因此如果您对它们进行 chown,则不会产生太大影响。但是也有一些例外,这可能会破坏一些后台内容,例如 sudo、cron、mail、systemd 和应用程序。(而且目录中的情况大不相同/var
,我假设您chown
在此之前已中止)
因此,从备份(或如果您没有进行太多安装/自定义,则从全新安装)中获取所有权和权限是一个好主意。
某些发行版还可以重置权限并应用安全策略,但不确定您的特定系统是否支持此功能。例如,rpm --setperms
可以对命名的软件包执行此操作,因为dpkg
您可以使用重新安装选项(例如使用aptitude reinstall “~i”
过滤器对所有已安装的包进行操作)。