近日使用 leader 的梯子失败,使用 ping 进行 debug。
发现 ping 居然 missing cap_net_raw+p capability or setuid
召唤了同事客服,说之前也有类似问题,重装软件包即可解决。
查看了一下原本的软件包和新装的软件包的信息,没有任何区别,包括 build 机器的 id 都一样。虽然在想要找到打包脚本的过程中遭遇了赛博鬼打墙,但是无敌的群友们还是翻出了,linux kernel 在 3.0 版本就支持了 icmp 不需要 sudo 权限。iputils 包中的 set cap 脚本只是给在构建过程中指定了需要 set cap 的情况生效。 https://github.com/iputils/iputils/blob/9900265d41e1a71f3967c6484798a2fff1ffc48b/ping/meson.build#L26

https://github.com/iputils/iputils/blob/9900265d41e1a71f3967c6484798a2fff1ffc48b/meson_options.txt#L27

于是排除了打包问题,找到了制作系统镜像的脚本,里面的 rsync 没有 X 参数,会丢失 xattr。
推荐使用 rsync -aAXH 进行完整的系统备份