2025年3月

如果你需要管理web服务器,你一定遇到过这样的问题:

  1. 新建了一个目录给新网站用,可是Nginx/PHP应用部署后 你发现没权限写入这个目录。
  2. root账户操作时复制进/var/www的文件不能用Web应用删掉
  3. 自己新建的账户上传的应用总是没法运行

还有诸多类似的错误,本质上都是权限不规范导致的。
让我们看看一个正常的网站目录权限是怎么样的:

xfox@racknerd-14a7c8:~$ ls -l /var/www/xfox.fun/
total 100
drwxrwxr-x 5 www-data www-data  4096 Jul  4  2023 admin
-rwxrwxr-x 1 www-data www-data  1667 Jul  4  2023 config.inc.php
-rwxrwxr-x 1 www-data www-data   708 Jun  7  2023 index.php
drwxrwxr-x 4 www-data www-data  4096 Jul  4  2023 tools
drwxrwxr-x 6 www-data www-data  4096 Jul  4  2023 usr
drwxrwxr-x 6 www-data www-data  4096 Jul  4  2023 var

我们可以发现,如上的一个用Nginx+PHP 部署的Typecho 站点目录是归www-data这个用户及同名用户组所有的。
实际上:www-data就是Nginx/Apache等常用Web服务使用的特定user/group,目的是给予网站尽可能低的权限。

正确的操作方式既不是粗暴的的用root用户往里站点路径硬写,也不是sudo 提权强行操作。
你应该将自己当前使用的管理账户(例如xfox )添加到 www-data 用户组中。
我们可以执行如下命令完成这一操作:
sudo usermod -aG www-data $USER
接着重新登录服务器使用groups命令即可确定当前用户所在的用户组

xfox@racknerd-14a7c8:~$ groups
xfox sudo www-data

确认无误就可以愉快的玩耍了!

从本周起,硬核观察复刻栏目将正式更名为《内核视界》并在绝大多数情况下维持每周一刊的状态,如有特别新闻需要放送,将另开出特刊。

联发科在Linux 6.15 中添加 MT8365 “Genio 350 ”DRM 驱动程序支持

联发科 Genio 350 (MT8365) SoC 14nm制程专为AIoT设计,拥有四个 Cortex-A53 内核(最大频率2Ghz)、Mali-52 GPU 内置内置机器视觉和自然语言处理的APU和HiFI DSP。

本周除了英特尔图形驱动程序代码和新的 AMD 硬件支持以及最初的 NOVA 驱动程序桩等 Linux 6.15 的重要功能外,较小的直接渲染管理器(DRM)驱动程序也在为下一个内核版本进行更改。Linux 6.15 的联发科 DRM 驱动程序将添加 MT8365 SoC 支持,也就是我们熟知的 Genio 350。

- 阅读剩余部分 -

今天是2025年3月8日,欢迎来到Linux用户站,以下是本期硬核观察复刻的主要内容。

Wine 10.3 改进了 Wayland 驱动程序的剪贴板处理,在 WineD3D 中实现了 Vulkan 视频解码

Wine 10.3 刚刚发布,这是这款开源软件的最新双周开发版本,用于在 Linux 和其他平台下运行 Windows 应用程序和游戏。
Wine 10.3 继续增强对 Wayland 驱动程序的支持,以便在 Wayland 下原生使用 Wine,而不是通过 XWayland 或依赖 X11 会话。目前,Wayland 驱动程序的最新功能是支持剪贴板的复制/粘贴处理。该代码自一月份以来一直在审核中,而现在已在 Wine 10.3 中准备就绪。
Wine 10.3 中另一项值得注意的功能是在 WineD3D 代码中的 Vulkan Video 上实现 Direct3D 视频解码。这是改进使用 Direct3D 视频接口的游戏/应用程序视频播放的一个步骤。
同样值得注意的是,Wine 10.3 在蓝牙驱动程序方面的工作也在继续进行,在过去几个月中已经取得了一些进展。
Wine 10.3 还捆绑了用于 ARM 构建的 Compiler-RT 库和 Winelib C++ 支持的头文件修复。
在过去两周中,Wine 10.3 共修复了 18 个已知错误,修复项目包括 Steam、虚幻引擎和 Windows 7 Card Games。

Me:Wayland已经逐渐成为各大Linux生态成员认可的主流标准。希望国内的信创产品也能及时跟进。

GNOME 48 候选发布版带来晚期 Mutter 功能及其他更改

随着两周后 GNOME 48 桌面稳定版的临近,GNOME 48 候选发布版 “48.rc ”已于7日晚发布。
在今天的 GNOME 48 候选发布版中,我们可以发现许多在最后关头进行的功能修改和其他值得注意的改动。一些最引人注目的 GNOME 48.rc 变动包括

  • Epiphany (GNOME Web) 现在将默认协议从 HTTP 更改为 HTTPS。
  • Evince 文档查看器改进了对 Adobe PDF 打开参数的支持。
  • GNOME 背景已改回使用 JPEG 而非 JPEG-XL 作为默认壁纸。恢复使用 JPEG 是出于性能方面的考虑。
  • GNOME 控制中心添加了 HDR 亮度设置用户界面。
  • 继续改进 GNOME 控制中心的 “数字福祉 ”选项。
  • GNOME 远程桌面现在支持硬件编码的 AVC444。
  • GNOME Shell 现在可按应用程序对通知进行分组。
  • GNOME 软件对更新页面的用户界面进行了小幅改进,同时还进行了一些性能改进和崩溃修复。
  • 许多 GNOME Mutter 的最后改进,包括 Wayland 颜色管理协议支持、动态三重缓冲、光标形状协议支持和演示时间 v2 支持。
  • GTK 带来了对 Wayland 光标形状协议的支持、使用新的 GNOME 默认字体的更好的字体渲染,以及对新的 Android 后端的修复。
  • Nautilus 文件管理器重新设计并加快了添加文件查看的速度。
  • XDG 桌面门户 GNOME 代码添加了全局快捷方式门户。

​Vulkan Video 的VP9解码计划于2025年实现

  1. Vulkan Video正在推进对VP9编解码器的支持,通过开发VK_KHR_video_decode_vp9扩展补充现有H.264/AV1编解码能力。该扩展将允许开发者利用GPU硬件加速VP9视频解码,预计2025年完成开发。
    ​2. 帧内刷新支持(Intra-Refresh)​
    Vulkan Video正在开发VK_KHR_video_encode_intra_refresh扩展,该功能可提升视频流传输的稳定性和效率,尤其适用于实时通信场景。通过分块刷新机制减少延迟,增强抗网络波动能力。
  2. ​维护性改进与跨平台兼容性
    ​VK_KHR_video_maintenance2扩展:优化视频处理流程的底层细节,提升API的长期可维护性。
    ​Mesa驱动支持:Igalia团队计划在2025年底前实现完整的AV1编码支持,并推动Linux平台的应用程序适配,例如GStreamer和FFmpeg。
  3. ​生态与工具链整合
    ​一致性测试套件:Khronos持续完善Vulkan Video的测试框架,确保跨厂商硬件(如NVIDIA、AMD、ARM)的兼容性。
    ​开源示例与SDK支持:提供标准化代码示例和验证层,降低开发门槛,加速高质量视频应用的落地。

Me: Vulkan 现在正在逐渐取代OpenGL(甚至包括部分Direct3D的工作)成为事实上的新标准,我们可以在AI推理加速,视频编解码,游戏底层图形驱动看到Vulkan的身影

Ubuntu 恢复“-O3 ”优化,继续寻求更简便的 ARM64 安装程序

Canonical工程师Matthieu Clemenceau代表Ubuntu Foundations工程师发布了Ubuntu 25.04开发周期的最新进展。目前,Ubuntu 25.04的开发周期已经过半,许多值得关注的软件包更新已经发布,同时,在更好地支持ARM64和“-O3 ”优化软件包方面的工作也在继续进行。
说到 Ubuntu 25.04 的一些值得注意的软件更新,Canonical 工程师已经发布了 Glibc 2.41、systemd 257.2 和 OpenSSL 3.4.1 等值得注意的版本升级。Ubuntu 25.04默认继续使用GCC 14,而其他一些值得注意的工具链版本包括Ubuntu 25.04的Python 3.13和OpenJDK Java 21。此外还有 Golang 1.24、Rust 1.84、Microsoft .NET 9 和 LLVM 20。
如前所述,Ubuntu 25.04将支持Dracut作为initramfs-tools的替代品,但Ubuntu Linux默认情况下不会使用Dracut,直到10月份的Ubuntu 25.10。
Canonical的工程师们还在继续开发crypto-config,用于系统范围内的密码学设置配置文件。
Ubuntu 25.04 在 ARM64 方面也做了更多工作,尤其是 Ubuntu Linux 对高通 Snapdragon X1 笔记本电脑的支持。对 Snapdragon X1 的支持有了更多改进,而且他们还在继续努力,希望能有一个 Ubuntu ARM64 ISO,从这些新的笔记本电脑到 ARM64 服务器等都能使用:

“我们将继续致力于实现Ubuntu对初学者友好、人人都能使用的目标,因此我们将继续努力。“

Me: 虽然我不是特别喜欢,但是我完全赞同Ubuntu是一个很适合Linux初学者的发行版。

Microsoft Edge 准备淘汰 Manifest V2 扩展开始禁用 uBlock Origin

在 Google Chrome 之后,Microsoft Edge 准备淘汰 Manifest V2 扩展开始禁用 uBlock Origin。最新的 Edge Canary 版本禁用了 Manifest V2 扩展,并显示信息称该扩展不再被支持,Microsoft Edge 建议将其移除。对于被自动禁用的扩展如 uBlock Origin,用户目前暂时还可以在扩展管理中手动启用。

Me:是安全还是广告商利益?或许都有。

DeepSeek 开发 Linux 文件系统以实现更好的 AI 训练和推理性能

DeepSeek 本周以MIT许可协议发布了 3FS,这是一个基于 Linux FUSE 的文件系统,旨在实现更好的 AI 训练和推理性能。
3FS Fire-Flyer 文件系统是一种分布式文件系统,旨在利用现代SSD和 RDMA 网络来获得更好的 AI 训练和推理体验。3FS 依靠 FUSE 提供基于用户空间的文件系统支持,旨在使使用共享存储部署大规模 AI 训练/推理集群变得更加容易。DeepSeek的 Fire-Flyer 文件系统具有分解架构、强一致性和其他以 AI 性能和可用性为目的的优化。
除了利用 FUSE 之外,这个 Linux 文件系统还依赖于 Rust 编程语言、Apple 的 FoundationDB 分布式数据库和其他现代依赖项。
Me:3FS本质上是尽可能绕过操作系统的各个IO流程瓶颈以压榨出存储设备极限性能。

EA 开源《命令与征服:红色警戒》

EA在上个月27号宣布,他们已根据 GPL 许可开源了《命令与征服:红色警戒》以及《命令与征服:泰伯利亚黎明》和《叛徒》和《将军:零时》。游戏源代码现已获得 GPL 许可,可供粉丝社区修改和扩展,并允许这些游戏在未来的平台上构建。在过去的一年里,EA 一直在努力从 Perforce 档案中恢复这些经典 C&C 游戏的源代码。
除了开放旧源代码外,EA 还为更多《命令与征服》游戏启用了 Steam Workshop 支持。有关
EA 此次令人意外的开源公告的更多详情,请访问SteamPowered.com。这些游戏的源代码可通过GitHub 上的 ElectronicArts获取。

《命令与征服:红色警戒》于 1996 年发布,因此需要针对 Microsoft DirectX 5 SDK 和其他旧组件进行构建。此外还需要 Wacom C/C++ 和 Borland Turbo Assembler。要运行这些游戏,您仍然需要拥有游戏的所有游戏资产。看看《命令与征服》粉丝社区如何处理开源代码,以及最终是否会有任何现代的 Linux 或类似移植版本,将会很有趣。

Me:今天先不骂EA了,红警用户在不久的将来会有机会获得更好的体验。

NetworkManager 1.52 带来 IPVLAN 接口支持、Ethtool FEC 模式

Linux 网络NetworkManager 1.52 昨天发布,这是 Linux 系统上广泛使用的系统网络服务和网络配置工具套件的最新版本。NetworkManager

1.52 增加了 IPVLAN 接口支持,现在允许手动配置 LTE 初始 EPS Bearer 的身份验证,支持仅 IPv6 首选 DHCPv4 选项,支持通过新属性自动向 DNS 服务器添加路由,支持 nm-cloud-setup 中的 OCI,并增加了对 ethtool FEC 模式的支持。

==================================================
NetworkManager-1.52

自 NetworkManager-1.50 以来的变更概览

  • 将交互历史记录存储在 $XDG_CACHE_HOME/nmcli-history 中,而不是 ~/.nmcli-history
  • 添加新的 ipv4.link-local=fallback 以在未设置其他 IPv4 时设置 IPv4 链路本地地址。
  • 删除使用 Autotools 构建的支持
  • 添加 IPVLAN 接口支持
  • 允许手动配置 LTE 初始 EPS Bearer 的身份验证。
  • 添加对“仅 IPv6 优先”DHCPv4 选项 (RFC 8925) 的支持,用于指示主机支持仅 IPv6 模式,并且如果网络提供 IPv6 连接,则愿意放弃获取 IPv4 地址。
  • 支持通过 ipv4.routed-dns 和 ipv6.routed-dns 属性自动将路由添加到 DNS 服务器;启用后,每个名称服务器只能通过指定它的设备访问。
  • 在 nm-cloud-setup 中支持 OCI
  • 增加了对 ethtool FEC 模式的支持
  • 添加新的 ipv4.shared-dhcp-range 和 ipv4.shared-dhcp-lease-time,允许您自定义 DHCP 服务器在“共享”连接方法中提供的 DHCP 范围和租用时间。
  • 现在可以使用支持 DNS over TLS 名称服务器的类似 URI 的语法指定 DNS 服务器。
  • initrd-generator 理解“rd.net.dns”选项以配置全局名称服务器。
  • 放弃对“dhcpcanon”DHCP 客户端的支持。
  • global-dns 配置部分现在有 2 个附加键:“resolve-mode”和“certification-authority”。
  • Dnsconfd 插件现在可用于配置系统范围的 DNS 缓存解析器。如果启用了 dnsconfd 插件并将 ipvX.routed-dns 设置为 -1,则默认启用添加路由。
  • 在 nmtui 中向 IPv6 配置选项添加“共享”方法。