共有フォルダー上の systemd へのアクセスを制限しているのは OS ですか、それとも Samba ですか?

共有フォルダー上の systemd へのアクセスを制限しているのは OS ですか、それとも Samba ですか?

私は2台のRocky Linux 9サーバーを持っており、svr1そしてsvr2svr1Samba サービスがインストールされており、次の設定で /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には両方がある岩だらけそしてマネージャー-クライアント2番目は、svr2リモート共有に接続してファイルを書き込みます。

svr1書き込まれたファイルを読む必要があるsvr2Node.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 または OS (selinux など) によって異なるかどうかはわかりません。

ありがとう

答え1

アクセスを許可するには、Rocky ユーザーを svr1 の smb_group に追加します。

sudo usermod -aG smb_group rocky

次にsambaを再起動します

Rocky ユーザーが svr2 によって作成されたファイルを読み取れるようにするには、shared_folder のファイル権限を調整する必要がある場合があります。

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

一貫したアクセス権限を維持するために、PM2プロセスマネージャもRockyユーザーの下で実行されるようにします。

関連情報