
Ich habe zwei Rocky Linux 9 Server, die wir anrufen könnensvr1Undsvr2. svr1hat den Samba-Dienst installiert und gibt den Ordner /home/rocky/shared_folder mit dieser Konfiguration frei:
[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
die smb_group hat beidesfelsigUndManager-KundeBenutzer. Der zweite ist der Benutzer, der verwendet wird aufsvr2um eine Verbindung herzustellen und Dateien auf die Remote-Freigabe zu schreiben.
Jetzt, amsvr1Ich muss Dateien lesen, die geschrieben wurden vonsvr2von einem NodeJS-Server. Dieser Server läuft alsfelsigBenutzer und wird verwaltet vonsystemd. Jedes Mal, wenn ich versuche, die Datei zu lesen, wird mir die Berechtigung verweigert,
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'
}
Aber wenn ich ein test.js-Skript erstelle, das dasselbe tut, und es von der Konsole aus ausführe, funktioniert es. Damit habe ich den Beweis, dass nur der systemd-Prozess abgelehnt wird, auch wenn der laufende Benutzer derselbe ist (felsig).
Die Berechtigungen für freigegebene Ordner lauten:
*drwxrws---. 6 root smb_group 169 Jan 25 12:49 shared_folder*
während eine bestimmte Datei diese hat:
*-rwxrw----. 1 manager-client smb_group 27007 Jan 25 12:38 context.json*
Kennen Sie einen Grund, warum das passieren könnte? Ich verstehe nicht, ob es von Samba oder dem Betriebssystem (Selinux oder so) abhängt.
Danke
Antwort1
Sie können den Rocky-Benutzer zur smb_group auf svr1 hinzufügen, um Zugriff zu gewähren:
sudo usermod -aG smb_group rocky
Starten Sie dann Samba neu
Möglicherweise müssen Sie die Dateiberechtigungen für den Shared_folder anpassen, um dem Rocky-Benutzer das Lesen von von svr2 erstellten Dateien zu ermöglichen:
sudo chmod -R 0775 /home/rocky/shared_folder
sudo chown -R rocky:smb_group /home/rocky/shared_folder
Stellen Sie sicher, dass der PM2-Prozessmanager auch unter dem Rocky-Benutzer ausgeführt wird, um einheitliche Zugriffsberechtigungen aufrechtzuerhalten