是作業系統還是 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來自 Node.js 伺服器。該伺服器運行為岩石使用者並由其管理系統。每次我嘗試讀取檔案時,權限都會被拒絕,如下所示

 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

然後重新啟動桑巴

您可能需要調整shared_folder的檔案權限以允許Rocky使用者讀取svr2所建立的檔案:

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

確保PM2進程管理器也運行在Rocky用戶下,以保持一致的存取權限

相關內容