是操作系统还是 Samba 限制了对共享文件夹上的 systemd 的访问?

是操作系统还是 Samba 限制了对共享文件夹上的 systemd 的访问?

我有两台 Rocky Linux 9 服务器,我们可以称之为svr1svr2svr1已安装 Samba 服务并使用以下配置共享文件夹 /home/rocky/shared_folder:

[global]
#        workgroup = SAMBA
        server string = Samba Server %v
        netbios name = rocky-9
        security = user
        map to guest = bad user
        dns proxy = no
        inherit permissions = yes
        inherit acls = yes
[Private]
        path = /home/rocky/shared_folder
        valid users = @smb_group
        guest ok = no
        writable = yes
        browsable = yes
        create mask = 0775
        force create mode = 0775
        directory mask = 2775
        force directory mode = 2775

smb_group 有岩石经理-客户用户。第二个是用户使用svr2连接远程共享并在远程共享上写入文件。

从今起svr1我需要读取由svr2来自 nodejs 服务器。此服务器运行为岩石用户并由管理systemd每次我尝试读取文件时,都会像这样被拒绝权限

 Error: EACCES: permission denied, open '/home/rocky/shared_folder/651e8a58a60e0392608a1c88/context.json'
     at Object.openSync (node:fs:581:18)
     at Object.readFileSync (node:fs:457:35)
    at Object.uploadFile (/home/rocky/coinnect-grpc-ai/providers/assistant.js:83:15)
     at Object.uploadFile (/home/rocky/coinnect-grpc-ai/controllers/manager.js:171:40)
     at Object.uploadFile (/home/rocky/coinnect-grpc-ai/server/server.js:243:46)
     at handleUnary (/home/rocky/coinnect-grpc-ai/node_modules/@grpc/grpc-js/build/src/server.js:852:17)
     at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
   errno: -13,
  code: 'EACCES',
   syscall: 'open',
   path: '/home/rocky/shared_folder/651e8a58a60e0392608a1c88/context.json'
 }

但是,如果我创建一个执行相同操作的 test.js 脚本并从控制台运行它,它就会正常工作。因此,我有证据表明,只有 systemd 进程被拒绝,即使运行用户是相同的(岩石)。

共享文件夹权限为:

*drwxrws---. 6 root  smb_group  169 Jan 25 12:49 shared_folder*

而特定文件有这些:

*-rwxrw----. 1 manager-client smb_group 27007 Jan 25 12:38 context.json*

您知道为什么会发生这种情况吗?我不明白这是否取决于 Samba 或操作系统(selinux 或类似的东西)。

谢谢

答案1

您可以将 Rocky 用户添加到 svr1 上的 smb_group 以授予访问权限:

sudo usermod -aG smb_group rocky

然后重启 samba

您可能需要调整 shared_folder 上的文件权限以允许 Rocky 用户读取 svr2 创建的文件:

sudo chmod -R 0775 /home/rocky/shared_folder
sudo chown -R rocky:smb_group /home/rocky/shared_folder

确保PM2进程管理器也在Rocky用户下运行,以保持一致的访问权限

相关内容