每次登录后我都会得到permission denied while trying to connect to the Docker daemon socket
,所以我需要执行sudo chmod 777 /var/run/docker.sock
来解决它。我很好奇为什么以及如何每次更改此文件的权限。另外我想禁止这样的改变,所以我不需要执行chmod
. 有没有办法做到这一点?请不要建议诸如运行无根 docker 或有关 docker 组的任何事情(在问我之前,我已经看到了这个问题:如何在没有 sudo 的情况下使用 docker?),我只对处理权限感兴趣。
因为码头工人非常重视安全。你也应该这样。您确实需要了解这会向所有人开放您的 docker 实例。要获得彻底的解释,这是必须阅读的。
chmod 777
永远不是正确的解决方案(嗯......除非还设置了粘性位)。如果你仍然想这样做
每次登录时都需要执行此命令。“启动应用程序”可用于在您登录桌面时执行脚本。但请不要。使用下面的组方法。
您还可以设置不可变位(chattr +i {file}),因此普通用户无法更改属性,但这只是一个技巧。有权访问系统的人可以通过实时会话重新启动来轻松更改它;即使是非管理员用户也可以做到这一点。
为什么?你忘了解释为什么这些是不可接受的。从理论上讲,您可能有一个正当的理由(尽管我自己无法想象:))。
请参阅如何在没有 sudo 的情况下使用 docker?关于如何设置它或使用关于如何使用组或无根设置 docker 的官方文档。这些是 docker 提供的两种方法。
DigitalOcean 论坛上的一些人建议基于官方 Docker 文档进行修复,该修复应该更安全和永久:
您可以通过编辑永久更改组所有权
/etc/systemd/system/sockets.target.wants/docker.socket
。在行设置正确的组
然后运行
systemctl daemon-reload
并重启