Serverless/Node Package Manager Berechtigungsproblem

MrTony

Lieutenant
Registriert
Feb. 2015
Beiträge
579
Hallo zusammen,

ich versuche unter Ubuntu 22.04 das Serverless Framework für Amazon Webservices zu nutzen. Allerdings bekomme ich jedes mal, wenn ich damit etwas deployen will folgenden Fehler:

TLDR: Serverless erstellt beim Deployment einen Ordner .serverless mit diversen cache Dateien. Die will es dann wieder löschen, bekommt aber wohl ein "permission denied"
Code:
 Error: EACCES: permission denied, rmdir '/home/tony/Documents/bdsm/.serverless/.requirements_cache/7cc4959877dbe6b6c63a8eb1bfe3bfb545fa8fe5b28b1b2c13e4a7c1c0d1c4d4_x86_64_slspyc/bin'
  at Object.rmdirSync (node:fs:1217:10)
  at rmdirSync (/home/tony/Documents/bdsm/node_modules/fs-extra/lib/remove/rimraf.js:264:13)
  at rimrafSync (/home/tony/Documents/bdsm/node_modules/fs-extra/lib/remove/rimraf.js:243:7)
  at /home/tony/Documents/bdsm/node_modules/fs-extra/lib/remove/rimraf.js:279:39
  at Array.forEach (<anonymous>)
  at rmkidsSync (/home/tony/Documents/bdsm/node_modules/fs-extra/lib/remove/rimraf.js:279:26)
  at rmdirSync (/home/tony/Documents/bdsm/node_modules/fs-extra/lib/remove/rimraf.js:269:7)
  at rimrafSync (/home/tony/Documents/bdsm/node_modules/fs-extra/lib/remove/rimraf.js:243:7)
  at /home/tony/Documents/bdsm/node_modules/fs-extra/lib/remove/rimraf.js:279:39
  at Array.forEach (<anonymous>)
  at rmkidsSync (/home/tony/Documents/bdsm/node_modules/fs-extra/lib/remove/rimraf.js:279:26)
  at rmdirSync (/home/tony/Documents/bdsm/node_modules/fs-extra/lib/remove/rimraf.js:269:7)
  at rimrafSync (/home/tony/Documents/bdsm/node_modules/fs-extra/lib/remove/rimraf.js:243:7)
  at /home/tony/Documents/bdsm/node_modules/fs-extra/lib/remove/rimraf.js:279:39
  at Array.forEach (<anonymous>)
  at rmkidsSync (/home/tony/Documents/bdsm/node_modules/fs-extra/lib/remove/rimraf.js:279:26)
  at rmdirSync (/home/tony/Documents/bdsm/node_modules/fs-extra/lib/remove/rimraf.js:269:7)
  at Object.rimrafSync [as removeSync] (/home/tony/Documents/bdsm/node_modules/fs-extra/lib/remove/rimraf.js:243:7)
  at AwsCommon.cleanupTempDir (/home/tony/Documents/bdsm/node_modules/serverless/lib/plugins/aws/common/lib/cleanupTempDir.js:12:13)
  at aws:common:cleanupTempDir:cleanup (/home/tony/Documents/bdsm/node_modules/serverless/lib/plugins/aws/common/index.js:50:55)
  at PluginManager.runHooks (/home/tony/Documents/bdsm/node_modules/serverless/lib/classes/PluginManager.js:601:41)
  at PluginManager.invoke (/home/tony/Documents/bdsm/node_modules/serverless/lib/classes/PluginManager.js:639:20)
  at processTicksAndRejections (node:internal/process/task_queues:96:5)
  at async PluginManager.spawn (/home/tony/Documents/bdsm/node_modules/serverless/lib/classes/PluginManager.js:663:5)
  at async package:cleanup (/home/tony/Documents/bdsm/node_modules/serverless/lib/plugins/aws/package/index.js:85:9)
  at async PluginManager.runHooks (/home/tony/Documents/bdsm/node_modules/serverless/lib/classes/PluginManager.js:601:35)
  at async PluginManager.invoke (/home/tony/Documents/bdsm/node_modules/serverless/lib/classes/PluginManager.js:639:9)
  at async PluginManager.spawn (/home/tony/Documents/bdsm/node_modules/serverless/lib/classes/PluginManager.js:663:5)
  at async before:deploy:deploy (/home/tony/Documents/bdsm/node_modules/serverless/lib/plugins/deploy.js:65:11)
  at async PluginManager.runHooks (/home/tony/Documents/bdsm/node_modules/serverless/lib/classes/PluginManager.js:601:35)
  at async PluginManager.invoke (/home/tony/Documents/bdsm/node_modules/serverless/lib/classes/PluginManager.js:638:9)
  at async PluginManager.run (/home/tony/Documents/bdsm/node_modules/serverless/lib/classes/PluginManager.js:700:7)
  at async Serverless.run (/home/tony/Documents/bdsm/node_modules/serverless/lib/Serverless.js:468:5)
  at async /home/tony/Documents/bdsm/node_modules/serverless/scripts/serverless.js:836:9

 For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.


Ich habe schon diverse Sachen probiert, wie z.B. den .serverless Ordner zu löschen oder zumindest den Ordner manuell anzulegen und ihm ganz bewusst chmod 777 zu geben, so dass es an Berechtigungen nicht schreitern sollte. Hatte leider keinen Erfolg.

Nach meinem Verständniss, sollten die Berechtigungsprobleme von Serverless an NodeJS bzw NPM liegen, denn ich habe es via NPM installiert via npm install -g serverless. Node und NPM habe ich dann wiederum via Node Version Manager installiert und den via "curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash". Das ist soweit also alles Standard und ich sehe leider nicht wie es da zu Probemen mit der Berechtigung kommen kann.

Jemand eine Idee?

VG
Tony
 
MrTony schrieb:
anzulegen und ihm ganz bewusst chmod 7
Als root arbeiten oder chmod 777 ist nie die Lösung. Das ist pfuscherei und du erzeugt damit immer irgendwann Probleme.

MrTony schrieb:
Node Version Manager installiert und den via "curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash". Das ist soweit
Das ist ein ziemlicher windows weg Dinge zu installieren. Die Wahrscheinlichkeit, dass du dir mit manuell an Zeug rum fummeln was kaputt machst ist hoch. Das ist so nicht Standard. Wenn du dir Zeug manuell installierst

Du nutzt ein modernes OS. Mit Paketmanager. Nutze ihn.
apt install nodejs npm

Vorher halt alles weg räumen was du kaputt gemacht hast.
Was macht npm überhaupt in documents? Warum bdsm?
Welche User haben da denn welche permissions?
 
  • Gefällt mir
Reaktionen: PHuV
madmax2010 schrieb:
Als root arbeiten oder chmod 777 ist nie die Lösung. Das ist pfuscherei und du erzeugt damit immer irgendwann Probleme.
Das war auch nicht als finale Lösung gedacht, sondern als Debugging um zu sehen, ob es denn wirklich an den Berechtigungen liegt.

madmax2010 schrieb:
Das ist ein ziemlicher windows weg Dinge zu installieren. Die Wahrscheinlichkeit, dass du dir mit manuell an Zeug rum fummeln was kaputt machst ist hoch. Das ist so nicht Standard. Wenn du dir Zeug manuell installierst

Du nutzt ein modernes OS. Mit Paketmanager. Nutze ihn.
apt install nodejs npm
Jein. Grundsätzlich bin ich da bei dir, aber in dem Schritt geht es nicht um Node und NPM sondern um NVM den Node version Manager. Und laut offiziellem Repo ist das der "offizielle" (und wohl auch einzige?!) Weg den zu installieren. Der installiert mir dann ja die Node/NPM version, die ich brauche.
madmax2010 schrieb:
Was macht npm überhaupt in documents? Warum bdsm?
Welche User haben da denn welche permissions?
BDSM ist der Kurzname für das Projekt und das Projekt liegt in meinem Documents Ordner.
drwxrwxrwx 4 tony tony 4096 Sep 24 12:11 Documents
Das sind die Nutzer und rechte für den Documents Folder.
 
Was gibt denn: ls -lh /home/tony/Documents/bdsm/.serverless aus (bzw. der ganze Pfad auf den zugegriffen wird)? permission denied bei Ordnern im home kann kommen, wenn man mal was mit sudo ausgeführt hat und anschließend wieder ohne sudo arbeitet.
 
  • Gefällt mir
Reaktionen: MrTony
home/tony/Documents/bdsm/.serverless

ls -lh:
total 4,0K
-rw-rw-r-- 1 tony tony 9 Sep 24 12:23 requirements.txt

/home/tony/Documents/bdsm/.serverless/.requirements_cache/7cc4959877dbe6b6c63a8eb1bfe3bfb545fa8fe5b28b1b2c13e4a7c1c0d1c4d4_x86_64_slspyc/bin

ls -lh:
total 4,0K
-rwxr-xr-x 1 100999 100999 251 Sep 24 12:23 normalizer

Ich habe mir nochmal angeschaut mit welchen User das Serverless Framework egtl. läuft:

ps auxw | grep serverless
tony 14919 0.0 0.0 17868 2368 pts/1 S+ 07:47 0:00 grep --color=auto serverless

Es scheint unter meinem normalen Benutzer zu laufen, der auf die Ordner Lese und Schreibzugriff hat.
 
Zuletzt bearbeitet:
Zurück
Oben