1 个不稳定版本
0.2.2 | 2021年2月28日 |
---|
#9 在 #hosts
41KB
792 代码行
Hostsmod - 安全修改 /etc/hosts
Linux/UNIX 上修改主机文件的命令行工具,用于更改静态主机名-IP 映射。
设计为以设置 suid 位的方式运行,以便非特权用户可以更新主机文件。这允许轻松集成更新条目、启动 docker 容器后更新条目或在本地上测试 Web 项目的虚拟主机,无需提升权限。
安全性设计
此工具已经针对安全性进行了设计,并具有可配置的主机名列表,允许修改条目。不允许其他修改。
此外,还会检查一些可能影响软件正确功能的键条目,如 localhost
,在写入新配置之前。
新配置将以不同的名称写入文件系统中的原始文件旁边,并且仅在最后一步将其移动到正确位置。这使得更改是原子的(根据 POSIX 语义),任何早期发生的错误都不会破坏现有配置。如果运行不成功,如果新占位符文件已经存在,则需要手动干预。
配置
使用 --sample-config
运行以生成一个样本 YAML 配置,该配置可以放置在 /etc/hostsmod.yaml
。请注意,如果应禁止任意修改,则应仅允许根用户修改此文件。然后必须授予可执行文件 suid 位,可以通过 sudo chmod u+s <path-to-hostsmod>
来完成,并且必须由根用户拥有。
示例
使用 --help
运行以获取软件做什么以及如何控制的详细描述。
删除条目,以便可以访问部署的实例(注意 --
与标志区分)
hostsmod -- -prod.project.tld
添加条目,以便可以使用真实世界的主机名测试本地开发环境
hostsmod -- 127.0.0.1=prod.project.tld ::1+=prod.project.tld 127.0.0.1=assets.project.tld
添加临时开发系统的随机 IP 条目
hostsmod "$(docker inspect --format '{{ .NetworkSettings.Networks.svc.IPAddress }}' localdb)=database"
依赖关系
~6.5MB
~117K SLoC