Steam 未在单独的 EXT4 分区上运行质子游戏

Steam 未在单独的 EXT4 分区上运行质子游戏

我有一个多用户系统,如果可能的话我想防止每个游戏下载 3 次。因此,我为我的 Steam 游戏创建了一个单独的 ext4 分区,并在 steam 中选择了该分区

drwxr-xr-x 4 root root   4096 May 21 17:06 ..
drwxrwxr-x 2 root steam 16384 May  4 19:59 lost+found
drwxrwxr-x 3 root steam  4096 May 21 17:22 SteamLibrary

所有质子游戏都无法启动我使用了启动选项 PROTON_LOG=1 并且日志说这个

wineserver: /mnt/steam/SteamLibrary/steamapps/compatdata/1118200/pfx is not owned by you
wine: '/mnt/steam/SteamLibrary/steamapps/compatdata/1118200/pfx' is not owned by you

我知道这可以解决

chown -R user:user /mnt/steam

但我不明白为什么我需要拥有我的组拥有所有权限的文件

我在网上找不到任何内容,因为 ntfs 分区填充我的搜索结果也存在类似问题。

我的用户也在steam组中。

ChatGPT 提到了一些关于 acl 和高级权限的内容,但是这个

sudo setfacl -R -d -m group:sharedgroup:rwx /mnt/steam/SteamLibrary

看来它只会设置我已经拥有的读/执行/写权限。

我想问是否可以为多个用户伪造一个挂载点或找到其他解决方法。

答案1

我不明白为什么我需要拥有我的组拥有所有权限的文件

此检查可能没有任何技术原因,但程序在其检查的条件下是免费的。

这些检查可能是在启动期间完成的,wine因此您可以创建

  • 包装脚本
  • 一条sudo规则

这样包装器脚本会将这些文件的所有者更改为调用者:

# start-my-game.sh

file_paths=( '/mnt/steam/SteamLibrary/steamapps/compatdata/1118200/pfx' )

sudo chown "$USER" "${file_paths[@]}"

# or for simpler sudoers rules (allow each file separately)
for file in "${file_paths[@]}"; do
    sudo chown "$USER" "$file"
done

the usual start command line

相关内容