分类 Linux 下的文章

环境公示

宿主机J3160 上模拟堡垒机跑反代和虚拟机 网络桥接模式宽带联通IPv6公网
通过测试确定任何网络支持ipv6的用户可正常使用。

照本宣科

仓库有文档不需要我教
我高估了国内开发者的水平,实践证明90%的在职从业者水平解决问题的能力并不像他们的学历一样比我高。
如果你很有自信,有能力补全官方PPA安装后造成的一大堆依赖和配置文件缺失问题,你可以尝试不使用docker直接安装。
https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker
docker部署后注意写对PUBLIC_URL,端口无所谓,但要和后续反代对照。
NAT后部署的必须填写JVB_ADVERTISE_IPS
其他参数非必要即默认,不要看什么CSDN之类的烂文章乱改乱加。

- 阅读剩余部分 -

使用场景

现在我有了一部安卓设备,我需要使用它在任何时候登录我的服务器,而我的服务器仅支持使用公钥访问
目前我暂时不清楚有哪些应用支持使用GPG密钥替代密码认证登录SSH,所以直接使用Termux模拟的Linux Shell环境就了最佳选择。

安装依赖

pkg update && pkg upgrade
pkg install gnupg openssh util-linux

- 阅读剩余部分 -

上一篇文章记录了如何使用GnuPG生成SSH密钥对代替密码登录服务器,既然是为了安全和方便,是时候禁用密码登录让你的服务器彻底免遭各国脚本小子的攻击了!

禁用密码登录提高安全性

现在你已经可以使用安装了GPG私钥的PC无密码登录服务器了,先登录服务器
编辑 SSH 配置文件:
打开 SSH 配置文件以进行编辑。

sudo nano /etc/ssh/sshd_config

找到并修改配置项:

- 阅读剩余部分 -

第二次了,发生在我的Thinkpad E14 Gen3 (20YE01CD)上。

 1986  du -h --max-depth=1 /home/xfox
 1987  du -h --max-depth=1 /home/xfox/.config
 1988  du -h --max-depth=1 /home/xfox/.config/clash-verge/logs/

一通查询,发现了问题所在。你没看错是被日志挤满的,
出现了大量类似如下条目的日志。
31mERRO[2024-01-18T22:52:08.679274456+08:00(☁️
CFWarp-C) connect to server: connect failed: dial udp 188.114.96.128:1074: connect: network is unreachable
31mERRO[2024-01-18T22:52:08.67928208+08:00(☁️
CFWarp-B) connect to server: connect failed: dial udp 188.114.98.122:1074: connect: network is unreachable

看看写入了多少(毕竟零下的温度散热风扇都转起来了)

xfox@ThinkPadE14Gen3:~$ du -h --max-depth=1 /home/xfox/.config/clash-verge/logs/
30G     /home/xfox/.config/clash-verge/logs/

好,写的很多,下次不要再写了。😠
这件事情提醒我们没事别老开着日志记录。

为啥我要自己编译?

因为Debian官方仓库的版本有些旧了。而且我不喜欢也不想大量使用臃肿的FlatPak或者Snap包。

官方文档

https://github.com/obsproject/obs-studio/wiki/Build-Instructions-For-Linux

自用版本

Github Release
编译参数Release有写明,如有需要留言说明。
我编译的包依赖Qt6,今后也不打算支持旧版Qt5。

sudo apt install qt6-base-dev qt6-base-private-dev libqt6svg6-dev qt6-wayland qt6-image-formats-plugins

持续更新

看心情,我想起来就去拉个最新版本的更新一下,想不起来就不管。
如果你发现有什么重大更新发布了但是我没跟进编译,可以留言我能看见。

问题设备主要参数

PC:Thinkpad E14Gen3 (AMD R5 5600U) 蓝牙与网卡集成在RTL8852AE上。
耳机:KMOUK KM-HTW008 (洛达1562A 蓝牙5.2 支持编码:SBC/ACC)。
操作系统:Linux ThinkPadE14Gen3 6.1.0-13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.55-1 (2023-09-29) x86_64 GNU/Linux

问题特征:

链接耳机能扫描到,但是链接失败,失败后正常出现在配对列表。报错:br-connection-profile-unavailable
另外,我当前使用的PulseAudio有非常致命的声音延迟问题,导致我在CSGO里屡屡被队友当成了聋子。😠

参考文章:

bluetooth-br-connection-profile-unavailable-issue-on-upgrade-to-xubuntu-23-04
https://wiki.debian.org/BluetoothUser/a2dp
https://wiki.debian.org/PipeWire#Bluetooth

- 阅读剩余部分 -

问题现象:

挂载的ext4磁盘无法建立Steam存储库,Steam展示的分区的选项里没有,手动选择后提示目录无执行权限。(ntfs-3g以default参数挂载的NTFS磁盘确正常显示且可以建立存储库但游戏似乎无法启动?)

尝试解决

手动chmod 775后发现Steam依然输出错误
Failed system("/media/xfox/LinuxDataPart/SteamGame/.steam_exec_test.sh") in execute test: 32256

这里我不得不吐槽一下,看日志的时候发现Steam还尝试往/efi/boot等敏感分区写入测试脚本,这个问题Github早有反馈但是至今未获得解决。

在路径下执行umask发现输出权限掩码0022,那么实际权限应该是0775,随后在CTL下进入路径手动运行二进制可执行文件发现命令行提示无权限执行。也就是可执行权限实际还是没有给到,编辑/etc/fstab,挂载参数改为:exec,umask=0022 重新挂载后再次启动Steam,大功告成。

后记

第二天就无法正常启动了,只得把umask删掉,但是明明上面系统分区/boot/efi用了umask参数都没问题。难道这俩参数冲突不能混用?总之最终只写了一个exec 启动了操作系统。存储库依旧是可用的。(然而我之前试过user,exec参数就不行,很奇葩。这个问题Github也一直存在,解决方法其中就有写user,exec的,还有搞软链接的,但是归根结底并不像是用户自己的问题。)
Fuck you Steam!

知识点:

Linux 文件基本属性和八进制权限代码表示

2023-10-28T20:30:27.png
从左至右用 0-9 这些数字来表示。
第 0 位确定文件类型,第 1-3 位确定属主(该文件的所有者)拥有该文件的权限。
第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。
其中,第 1、4、7 位表示读权限,如果用 r 字符表示,则有读权限,如果用 - 字符表示,则没有读权限;
第 2、5、8 位表示写权限,如果用 w 字符表示,则有写权限,如果用 - 字符表示没有写权限;第 3、6、9 位表示可执行权限,如果用 x 字符表示,则有执行权限,如果用 - 字符表示,则没有执行权限。

各权限的分数对照表如下:
读 r:4
写 w:2
执行 x:1
无权 -:0
分数之和即为权限所有者的权限等级代码,依次有所有者owner,所有者同组用户group,其他用户others 这三个权限所者,每个权限施行对象有一个数字,即前面介绍的分数之和来
rwx r-x r-x即

4+2+1 4+0+1 4+0+1
7 5 5
777-022=775 ,777,644,775这些常见权限等级设置是不是很熟悉?
0777-权限掩码=实际权限代码
umask可用来设定[权限掩码]。直接执行umask查看当前[权限掩码],[权限掩码]是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。