xys20071111 / QQ-For-Linux-Docker

新版 QQ for Linux 的Docker镜像
6 stars 0 forks source link

对权限更加精细控制的建议 #3

Closed cs231giCjh3 closed 1 week ago

cs231giCjh3 commented 2 weeks ago

xhost +可以使用xhost +SI:localuser:$(whoami)代替(如果以root权限运行docker$(whoami)应该用root)

容器的启动命令可以使用--cap-add=SYS_ADMIN代替--privileged 并且添加--security-opt=no-new-privileges防止容器获取更多权限 我的系统是Debian 12 (bookworm),桌面环境为KDE Plasma 5.27.5(Wayland),手动构建的litterload版本,实测可行 具体运行参数如下:

docker run --name qq \
           --rm -d --cap-add=SYS_ADMIN \
           --security-opt=no-new-privileges \
           -v /tmp/.X11-unix:/tmp/.X11-unix \
           -v 数据存储路径:/home/user \
           -v /run/user/$(id -u)/bus:/run/user/$(id -u)/bus \
           -v /run/dbus/system_bus_socket:/run/dbus/system_bus_socket \
           --env DBUS_SESSION_BUS_ADDRESS="$DBUS_SESSION_BUS_ADDRESS" -e UID=$(id -u) \
           -e DISPLAY=$DISPLAY \
           -e LANG \
           -e XMODIFIERS \
           -e QT_IM_MODULE \
           -e GTK_IM_MODULE \
           qq-for-linux:lateset

毕竟QQ这流氓当然是越防备越好啦\~

cs231giCjh3 commented 2 weeks ago

以及DBus总线可以只挂载用户的 D-Bus 会话总线,也可以正常运行:

docker run --name qq \
           --rm -d --cap-add=SYS_ADMIN \
           --security-opt=no-new-privileges \
           -v /tmp/.X11-unix:/tmp/.X11-unix \
           -v 数据存储路径:/home/user \
           -v /run/user/$(id -u)/bus:/run/user/$(id -u)/bus \
           --env DBUS_SESSION_BUS_ADDRESS="$DBUS_SESSION_BUS_ADDRESS" -e UID=$(id -u) \
           -e DISPLAY=$DISPLAY \
           -e LANG \
           -e XMODIFIERS \
           -e QT_IM_MODULE \
           -e GTK_IM_MODULE \
           qq-for-linux:lateset
xys20071111 commented 1 week ago

好的,我去试一下

xys20071111 commented 1 week ago

确实可以用,谢谢您的反馈