是否可以恢复 sudo chmod 777 -R /home/USER/docker?

是否可以恢复 sudo chmod 777 -R /home/USER/docker?

我在构建家庭服务器时开始学习更多关于 Linux 和 Ubuntu 的知识。但在阅读教程时,有人建议我在终端中添加 sudo chmod 777 -R /home/USER/docker,以便 docker 获得对该文件夹的读写权限。但现在读到 chmod 777 的作用时,我对此产生了疑虑。我知道的是,chmod 777 允许任何人(甚至是公众)读写。

让它继续存在会很危险吗?或者有办法恢复它吗?我担心被黑客入侵,有人会利用我的服务器进行恶意活动。我确实在我的 Docker 上设置了一个 VPN(NordVPN)

祝好,汤米

答案1

我知道的是 chmod 777 允许任何人(甚至公众)读写。

它设置文件和目录以供用户、所有者和其他人读取、写入和执行。使用 777 几乎从来都不是一个好主意。通常,对于单用户系统,目录为 750 和文件为 640 已经足够了。对于多用户系统,目录为 770 和文件为 660 可能也是一种选择。例如,/tmp 使用带粘性位的 777(即,任何人都可以将文件放入 /tmp,但只有所有者或 root 可以删除或重命名它)。

让它保留在那里是否会危险?有没有办法恢复它?

唯一真正完美的方法是恢复备份,但通用的方法是:

find  /home/USER/docker -type d -print0 | xargs -0 chmod 0755
find  /home/USER/docker -type f -print0 | xargs -0 chmod 0644

请注意,您需要将用户选项的可执行文件设置为“7”。如果文件的“644”阻止您使用它,请切换到稍微不太安全的 chmod(首先是 744,然后是 754,然后是 774),但我怀疑这是没有必要的。

答案2

一般情况下不会。您以前的环境有精心设计的权限结构(根据需要允许/禁止访问)和SETUID,SETGID位。通过将所有这些设置为777( rwxrwxrwx),您已经破坏了此结构,丢失了信息,并清除了所有SETUID,SETGID位。您必须从正确的安装中复制权限,或者重新安装。

相关内容