Was ist die Ursache für diesen Fehler: Fehler: EACCES, Berechtigung verweigert

Was ist die Ursache für diesen Fehler: Fehler: EACCES, Berechtigung verweigert

Ich habe zwei drei Benutzer:

db, nr, ba

Alle drei sind Mitglieder der Gruppe dbp

Node.js ist in /usr/bin installiert.

Wenn ich den Befehl ausführe:

/usr/bin/node /home/db/dbb/m/i.js

Dann funktioniert es einwandfrei, wenn ich es als Benutzer „ba“ ausführe. Aber wenn ich es als „nr“ ausführe, stürzt es mit dem Fehler ab:

Error: EACCES, permission denied './manifest.json'

dbb hat Berechtigungen: drwxr-s--- db dbp manifest.json ist eine Datei, die sich im selben Ordner wie i.js befindet. Die App scheint zu starten und auszuführen, bis sie versucht, manifest.json zu lesen, woraufhin sie abstürzt.

BEARBEITEN: umask ist 027

BEARBEITEN: Die Ausgabe stat ./manifest.jsonist:

 File: `manifest.json'
  Size: 251         Blocks: 8          IO Block: 4096   regular file
Device: ca00h/51712d    Inode: 2598        Links: 1
Access: (0444/-r--r--r--)  Uid: ( 1001/db)   Gid: ( 1001/db)
Access: 2014-11-18 18:03:48.297158000 +0000
Modify: 2014-11-18 18:03:37.000000000 +0000
Change: 2014-11-18 18:03:48.298380902 +0000
 Birth: -

BEARBEITEN: Ich habe das Benutzerkonto db sowie die Gruppe dbp gelöscht. Ich habe die Umask auf 002 gesetzt. Dann habe ich nur das Benutzerkonto db neu erstellt und versucht, den Befehl /usr/bin/node /home/db/dbb/m/i.jsals db auszuführen, aber es trat derselbe Fehler auf.

Als ich dies dieses Mal tat stat manifest.json, erhielt ich die gleiche Ausgabe:

File: `manifest.json'
  Size: 251         Blocks: 8          IO Block: 4096   regular file
Device: ca00h/51712d    Inode: 2368        Links: 1
Access: (0444/-r--r--r--)  Uid: ( 1001/db)   Gid: ( 1001/db)
Access: 2014-11-18 19:08:35.709657000 +0000
Modify: 2014-11-18 18:03:37.000000000 +0000
Change: 2014-11-18 19:08:35.708011027 +0000
 Birth: -

Antwort1

Diese Datei gehört dem Benutzer dbund der Gruppe db:

Access: (0444/-r--r--r--)  Uid: ( 1001/db)   Gid: ( 1001/db)

Aber es ist allgemein lesbar (444). Die Verzeichnishierarchie, in der es sich befindet, ist es nicht, aber es sollte für die Gruppe lesbar sein dbp.es sei denn /home/dbhat nicht standardmäßige Berechtigungen. Dies kann der Fall sein, weil Ihre Umask (027) strenger ist als normal (002).

Andernfalls ist der EACCES-Fehler wahrscheinlich aufgetreten, weil der Prozess versucht hat, die Datei fürSchreiben.

Antwort2

Öffnen Sie das Terminal und geben Sie den folgenden Befehl ein:

sudo chown -R $user:$group ./manifest.json

verwandte Informationen