Linux 版本使用 CAP_NET_ADMIN 解决权限问题
#7824
Replies: 4 comments 1 reply
-
|
作为一个发行版曾经的维护者,我的观点是不建议开发者集成,个人可以修改;v2rayN是开源的软件,代码可供任何人查看;需要便捷的话,直接用root账户登录Linux万事无忧;限制权限是有必要的;开发者在代码内内置了这个选项代表所有人使用这款软件的用户要面对root权限带来的风险,个人修改是个人的意愿。 |
Beta Was this translation helpful? Give feedback.
-
同意,但是如果用户为了方便选择赋予权限,当前开启 TUN 时还是会弹出对话框要求输入密码。我是建议开发者把这个选择权交给用户,增加一个设置项,让所有用户都去改代码重新编译还是太激进了。 单独赋予网络设备权限应该是用最小的安全代价换取便利了。 |
Beta Was this translation helpful? Give feedback.
-
|
暂时不会修改目前的模式了。 目前只需要运行首次需要 sudo 密码,已经够方便了。 |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
问题简述
#7116 中我建议通过赋予 sing-box 内核
CAP_NET_ADMIN属性,避免储存或反复输入密码。很抱歉,我给出的命令有误,经过测试,这个方案是可行的。
原本的命令是
sudo setcap CAP_NET_ADMIN+ep sing-box,问题出在 sing-box 在创建虚拟网卡设备时,会 fork 3 个子进程,而这些子进程不会继承属性,这就导致了:解决方案
其中
i表示继承(inherited)。如果开发者不原因将这条命令加入安装包脚本,也可以在 Wiki 中说明让用户自己添加。然后就可以删除(或选择性启用)那个 sudo 密码的对话框了。
测试
v2rayN 7.13.8
在上次关闭 v2rayN 不关闭 TUN 时(TUN 相关配置仍保留在配置文件中):
cd /opt/v2rayn-bin sudo setcap CAP_NET_ADMIN+eip ./bin/sing_box/sing-box ./bin/sing_box/sing-box run -c ./binConfigs/config.json成功运行,TUN 正常。
题外话
昨天研究了代码,似乎 Hysteria2 的
up_mbps、down_mbps和hop_interval是写死在源码里的?是否可以添加设置,默认的 30 秒跳跃间隔在 QoS 往死里整的地区不太够用。(我就在这种地区,之前都是 1 秒跳跃。)Beta Was this translation helpful? Give feedback.
All reactions