You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04下多用户运行.NET Core Avalonia应用的权限问题

问题分析

从你提供的文件权限信息能直接定位问题:

  • 文件权限为-rwx------:仅**文件所有者(user2)**拥有读、写、执行权限,组用户和其他用户无任何操作权限
  • 文件所有者是user2,所属组是user1,但组权限被完全限制,因此user1作为组成员也无法访问应用

另外你之前的chown命令用法有误:连续执行sudo chown -R :user1和sudo chown -R :user2会覆盖目录的所属组,最终仅最后一次设置的组生效;且这种方式无法实现多用户共享权限——Linux中多用户共享资源需通过共享用户组统一管理,而非反复修改所属组。

修复步骤

1. 创建共享用户组

先创建一个专门用于运行该应用的用户组,比如avalonia-app-users:

sudo groupadd avalonia-app-users

2. 将目标用户加入共享组

把user1和user2添加到这个共享组中:

sudo usermod -aG avalonia-app-users user1
sudo usermod -aG avalonia-app-users user2

注意:用户需要重新登录,新的组权限才会生效

3. 修改应用目录的归属

将/opt/AvaloniaApp的所有者设为root,所属组设为刚创建的共享组:

sudo chown -R root:avalonia-app-users /opt/AvaloniaApp

4. 设置正确的权限

  • 给目录设置2770权限(含setgid位,确保目录下新生成的文件自动继承组权限):
sudo chmod -R 2770 /opt/AvaloniaApp
  • 若需要更严格的权限控制(比如文件不需要写权限),可单独调整文件和目录权限:
sudo find /opt/AvaloniaApp -type f -exec chmod 750 {} \;
sudo find /opt/AvaloniaApp -type d -exec chmod 2770 {} \;

权限说明:

  • 2770:目录权限,2代表setgid位,770表示所有者和组用户均拥有读写执行权限,其他用户无权限
  • 750:文件权限,所有者拥有读写执行权限,组用户拥有读和执行权限,无写权限

5. 验证权限

执行以下命令确认权限配置正确:

ls -l /opt/AvaloniaApp

正常情况下,文件所属组应为avalonia-app-users,权限类似-rwxr-x---或-rwxrwx---。

额外说明
  • 你之前执行的chmod -R u+rwx仅开放了所有者权限,未给组和其他用户授权,这就是初始仅root能访问的原因
  • 单文件发布的Avalonia应用运行时会临时解压文件到用户目录,默认情况下每个用户的~/.cache或临时目录权限正常,无需额外配置

内容的提问来源于stack exchange,提问作者SIVA KUMAR KALLURI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 02:12:38