
우리가 호출할 수 있는 두 개의 Rocky Linux 9 서버가 있습니다.svr1그리고svr2. svr1Samba 서비스가 설치되어 있고 /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다음에 의해 작성된 파일을 읽어야 합니다.svr2nodejs 서버에서. 이 서버는 다음과 같이 실행됩니다.불안정한사용자이며 관리됩니다.체계화된. 파일을 읽으려고 할 때마다 다음과 같이 권한이 거부되었습니다.
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
그런 다음 삼바를 다시 시작하십시오.
Rocky 사용자가 svr2에서 생성된 파일을 읽을 수 있도록 shared_folder에 대한 파일 권한을 조정해야 할 수도 있습니다.
sudo chmod -R 0775 /home/rocky/shared_folder
sudo chown -R rocky:smb_group /home/rocky/shared_folder
일관된 액세스 권한을 유지하려면 PM2 프로세스 관리자가 Rocky 사용자로도 실행되는지 확인하세요.