Jailed SSH - NPM hinzufügen

Allgemeine Diskussionen rund um KeyHelp.
User avatar
v3ng
Posts: 297
Joined: Wed 4. Jul 2018, 18:08

Jailed SSH - NPM hinzufügen

Post by v3ng »

Hi,

Ich versuche aktuell NPM in der Jailed SSH Umgebung zu installieren.
Ich habe mich an der von Alex geschriebenen Anleitung orientiert um die Abhängigkeiten rauszufinden, allerdings beschwert er sich dennoch, dass /lib/cli.js fehlen würde.

Hat jemand eine Idee, welche Pfade hier fehlen?


Danke!

Code: Select all

iankjozadi@fra1:/www$ npm
internal/modules/cjs/loader.js:818
  throw err;
  ^

Error: Cannot find module '../lib/cli.js'
Require stack:
- /usr/bin/npm
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:815:15)
    at Function.Module._load (internal/modules/cjs/loader.js:667:27)
    at Module.require (internal/modules/cjs/loader.js:887:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object.<anonymous> (/usr/bin/npm:2:1)
    at Module._compile (internal/modules/cjs/loader.js:999:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
    at Module.load (internal/modules/cjs/loader.js:863:32)
    at Function.Module._load (internal/modules/cjs/loader.js:708:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ '/usr/bin/npm' ]
}

Code: Select all

root@fra1:~ # locate /lib/cli.js
/usr/share/nodejs/npm/lib/cli.js
Zusätzliche Binärdateien

Code: Select all

/usr/bin/composer
/usr/bin/npm
/usr/bin/env
/usr/bin/node
Zusätzliche Pfade

Code: Select all

/usr/share/php/
/usr/share/nodejs
/usr/share/npm/
/usr/include/nodejs
/usr/include/node
/usr/lib/nodejs
User avatar
v3ng
Posts: 297
Joined: Wed 4. Jul 2018, 18:08

Re: Jailed SSH - NPM hinzufügen

Post by v3ng »

Noch ein ergänzendes Problem mit Composer und den zusätzlichen PHP Versionen:

Composer Aufruf mittels der PHP Version der Distribution funktioniert Problemlos

Code: Select all

iankjozadi@fra1:/home/users/iankjozadi$ /usr/bin/composer
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer 2.0.9 2021-01-27 16:09:27

Leider jedoch mit keiner der von Keyhelp bereitgestellten zusätzlichen PHP Versionen, was etwas ungünstig ist da composer oftmals PHP 8.0+ voraussetzt.
Das lässt sich zwar ignorieren, es wäre dennoch interessant zu wissen, woran es hier scheitert

Code: Select all

keyhelp-php81 /usr/bin/composer 
PHP Warning:  require(Composer/autoload.php): Failed to open stream: No such file or directory in /usr/bin/composer on line 9
PHP Fatal error:  Uncaught Error: Failed opening required 'Composer/autoload.php' (include_path='.:') in /usr/bin/composer:9
Stack trace:
#0 {main}
  thrown in /usr/bin/composer on line 9

User avatar
Alexander
Keyweb AG
Posts: 3810
Joined: Wed 20. Jan 2016, 02:23

Re: Jailed SSH - NPM hinzufügen

Post by Alexander »

Wie hast du Composer installiert?
Ist der Benutzer gejailed?

Ich hab jetzt einfach zu einem anderen Benutzer gewechselt und kann ihn problemlos über mit einem zusätzlichen Interpreter aufrufen.

Code: Select all

keyhelp@dev01:/$ keyhelp-php80 /usr/local/bin/composer 
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.3.5 2022-04-13 16:43:00
Mit freundlichen Grüßen / Best regards
Alexander Mahr

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
User avatar
v3ng
Posts: 297
Joined: Wed 4. Jul 2018, 18:08

Re: Jailed SSH - NPM hinzufügen

Post by v3ng »

Genau, der Benutzer ist gejailed.
Composer habe ich über den Paketmanager installiert
User avatar
Alexander
Keyweb AG
Posts: 3810
Joined: Wed 20. Jan 2016, 02:23

Re: Jailed SSH - NPM hinzufügen

Post by Alexander »

Hab ich gerade auch nochmal nachgestellt, funktioniert auch.

Installier Composer mal nach dieser Anleitung: https://getcomposer.org/download/
Über die Paketverwaltung ist der Composer i.d.R. ohnehin zu alt für manche Sachen, die man dann später ggf. braucht.
Mit freundlichen Grüßen / Best regards
Alexander Mahr

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
User avatar
v3ng
Posts: 297
Joined: Wed 4. Jul 2018, 18:08

Re: Jailed SSH - NPM hinzufügen

Post by v3ng »

Ich habe composer nun mal manuell installiert, interessanterweise werden nun in keinem der jailed accounts die zusätzlichen Keyhelp PHP interpreter gefunden.
Scheint allerdings nicht mit composer zusammenzuhängen

Code: Select all

keyhelp-php80
-bash: keyhelp-php80: command not found
User avatar
Alexander
Keyweb AG
Posts: 3810
Joined: Wed 20. Jan 2016, 02:23

Re: Jailed SSH - NPM hinzufügen

Post by Alexander »

Das war beim Testen der zusätzliche Inhalt meiner Chroot (Konfiguration -> Eingeschränkte SSH-Umgebung -> Zusätzliche Binärdateien):

Code: Select all

/usr/local/bin/composer
/opt/keyhelp/php/8.0/bin/php

Und aufgerufen hab ich mit

Code: Select all

/opt/keyhelp/php/8.0/bin/php /usr/local/bin/composer

Die "Shortcuts" hab ich jetzt nicht probiert.
Mit freundlichen Grüßen / Best regards
Alexander Mahr

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
User avatar
v3ng
Posts: 297
Joined: Wed 4. Jul 2018, 18:08

Re: Jailed SSH - NPM hinzufügen

Post by v3ng »

Müssen die PHP interpreter einzeln inkludiert werden?
Ich hätte gedacht, Keyhelp macht das automatisch.

Ich habe nun mal alle PHP Versionen einzeln eingebunden, ein direkter Aufruf dieser funktioniert auch, allerdings weiterhin keiner der Shortcuts.


Zusätzliche Binärdateien:

Code: Select all

/usr/local/bin/composer
/usr/bin/npm
/usr/bin/env
/usr/bin/node
/opt/keyhelp/php/8.0/bin/php
/opt/keyhelp/php/8.1/bin/php
/opt/keyhelp/php/7.4/bin/php
Zusätzliche Pfade:

Code: Select all

/opt/keyhelp/php

Composer scheint allerdings zu funktionieren, abgesehen von den extension warnings,

Code: Select all

iankzedafo@fra1:/www$ /opt/keyhelp/php/8.1/bin/php /usr/local/bin/composer 
PHP Warning:  PHP Startup: Unable to load dynamic library '/opt/keyhelp/php/8.1/lib/php/extensions/no-debug-non-zts-20210902/imap.so' (tried: /opt/keyhelp/php/8.1/lib/php/extensions/no-debug-non-zts-20210902/imap.so (libc-client.so.2007e: cannot open shared object file: No such file or directory), /opt/keyhelp/php/8.1/lib/php/extensions/no-debug-non-zts-20210902//opt/keyhelp/php/8.1/lib/php/extensions/no-debug-non-zts-20210902/imap.so.so (/opt/keyhelp/php/8.1/lib/php/extensions/no-debug-non-zts-20210902//opt/keyhelp/php/8.1/lib/php/extensions/no-debug-non-zts-20210902/imap.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/opt/keyhelp/php/8.1/lib/php/extensions/no-debug-non-zts-20210902/memcached.so' (tried: /opt/keyhelp/php/8.1/lib/php/extensions/no-debug-non-zts-20210902/memcached.so (libmemcached.so.11: cannot open shared object file: No such file or directory), /opt/keyhelp/php/8.1/lib/php/extensions/no-debug-non-zts-20210902//opt/keyhelp/php/8.1/lib/php/extensions/no-debug-non-zts-20210902/memcached.so.so (/opt/keyhelp/php/8.1/lib/php/extensions/no-debug-non-zts-20210902//opt/keyhelp/php/8.1/lib/php/extensions/no-debug-non-zts-20210902/memcached.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/opt/keyhelp/php/8.1/lib/php/extensions/no-debug-non-zts-20210902/tidy.so' (tried: /opt/keyhelp/php/8.1/lib/php/extensions/no-debug-non-zts-20210902/tidy.so (libtidy.so.5deb1: cannot open shared object file: No such file or directory), /opt/keyhelp/php/8.1/lib/php/extensions/no-debug-non-zts-20210902//opt/keyhelp/php/8.1/lib/php/extensions/no-debug-non-zts-20210902/tidy.so.so (/opt/keyhelp/php/8.1/lib/php/extensions/no-debug-non-zts-20210902//opt/keyhelp/php/8.1/lib/php/extensions/no-debug-non-zts-20210902/tidy.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.3.7 2022-06-06 16:43:28

tab-kh
Posts: 450
Joined: Thu 22. Apr 2021, 23:06

Re: Jailed SSH - NPM hinzufügen

Post by tab-kh »

Was meinst du mit "einzeln einbinden". Natürlich macht das Keyhelp automatisch, wenn in Einstellungen->Konfiguration->PHP-Interpreter die gewünschten Versionen ausgewählt/installiert sind. Wie hast du denn den Composer installiert, damit man mal versuchen kann das nachzuvollziehen?

Meine über Keyhelp installierten zusätzlichen PHP-Interpreter funktionieren jedenfalls, so dass ich das Problem zunächst bei Composer bzw seiner Installation oder beim verwendeten User verorten würde.
User avatar
Alexander
Keyweb AG
Posts: 3810
Joined: Wed 20. Jan 2016, 02:23

Re: Jailed SSH - NPM hinzufügen

Post by Alexander »

Ich habe nun mal alle PHP Versionen einzeln eingebunden, ein direkter Aufruf dieser funktioniert auch, allerdings weiterhin keiner der Shortcuts.
Damit die Shortcus funktionieren, füg mal unter "Konfiguration -> Eingeschränkte SSH-Umgebung -> Zusätzliche Pfade" das ein:

Code: Select all

/usr/bin/keyhelp-php81
/usr/bin/keyhelp-php80
/usr/bin/keyhelp-php74

Gibts einen Grund für das hier in deinen zusätzlichen Pfaden?
Nämlich erst wenn ich das mit dazu nehme, erhalte ich diese Warnings. (unable to load...)

Code: Select all

/opt/keyhelp/php

Wenn du es wieder rausnehmen willst, gilt dieser Text im KeyHelp:
KeyHelp wrote:Beachten Sie, dass die zusätzlichen Inhalte nicht automatisch deinstalliert werden. Sobald die eingeschränkte SSH-Umgebung aktualisiert wird, bleiben die Dateien darin enthalten, bis sie für einen bestimmten Benutzer wieder vollständig deaktiviert wird.
Zum "deinstallieren" aus den Chroot-Umgebungen dann also:
1)

Code: Select all

rm -fr /home/users/*/opt/keyhelp/php
2)
Einmal unter "Konfiguration -> Eingeschränkte SSH-Umgebung" auf "Speichern" klicke, so das die zusätzlichen PHP Binaries wieder in die Chroot geschrieben werden.
Mit freundlichen Grüßen / Best regards
Alexander Mahr

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
User avatar
v3ng
Posts: 297
Joined: Wed 4. Jul 2018, 18:08

Re: Jailed SSH - NPM hinzufügen

Post by v3ng »

/opt/keyhelp/php hatte ich während dem testen mit eingefügt um zusehen ob das Abhilfe schafft.

Nach dem manuellen löschen, sowie entfernen der Pfade scheint Composer jetzt problemlos zu laufen.
Die Shortcuts laufen nach dem manuellen hinzufügen der Pfade auch Problemlos, danke!


NPM bekomme ich allerdings weiterhin nicht zum laufen, meine zusätzlichen Pfade sehen mittlerweile auch etwas wild aus, da habe ich während dem Testen auch versucht ob das eventuell hilft

Zusätzliche Binärdateien

Code: Select all

/usr/local/bin/composer
/usr/bin/npm
/usr/bin/env
/usr/bin/node
/opt/keyhelp/php/8.0/bin/php
/opt/keyhelp/php/8.1/bin/php
/opt/keyhelp/php/7.4/bin/php

Zusätzliche Pfade

Code: Select all

/usr/share/nodejs
/usr/share/npm/
/usr/include/nodejs
/usr/include/node
/usr/lib/nodejs
/usr/bin/keyhelp-php81
/usr/bin/keyhelp-php80
/usr/bin/keyhelp-php74
User avatar
Alexander
Keyweb AG
Posts: 3810
Joined: Wed 20. Jan 2016, 02:23

Re: Jailed SSH - NPM hinzufügen

Post by Alexander »

Bei NPM bin ich leider raus ;). Ggf. setzt hier ja jemand NPM ein und kann eher etwas dazu sagen. Oder müsste mich nochmal eingehender mit beschäftigen.
Mit freundlichen Grüßen / Best regards
Alexander Mahr

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
User avatar
Alexander
Keyweb AG
Posts: 3810
Joined: Wed 20. Jan 2016, 02:23

Re: Jailed SSH - NPM hinzufügen

Post by Alexander »

Habs jetzt hinbekommen mit NPM/Node. Sagst mir zunächst auch hier nochmal, wie du NPM/Node installiert hast?
Mit freundlichen Grüßen / Best regards
Alexander Mahr

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
User avatar
v3ng
Posts: 297
Joined: Wed 4. Jul 2018, 18:08

Re: Jailed SSH - NPM hinzufügen

Post by v3ng »

NPM habe ich ebenfalls über den Paketmanager installiert, allerdings aus den standard repos und nicht denen von NodeJS/NPM direkt.
Würde ich aufgrund der alten version allerdings noch ändern
User avatar
Alexander
Keyweb AG
Posts: 3810
Joined: Wed 20. Jan 2016, 02:23

Re: Jailed SSH - NPM hinzufügen

Post by Alexander »

Habe jetzt doch nur node zum laufen bekommen. Bei npm kommt die Fehlermeldung wie bei dir. Hätte schwören könne, das es gestern aber klappte, heute beim nachstellen nicht mehr.
Mit freundlichen Grüßen / Best regards
Alexander Mahr

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
Post Reply