Using npm with QSECOFR

Issue #7 resolved
Former user created an issue

Trying to use npm (node.js 6.9.1, npm 3.10.8) with QSECOFR user profile (remote ssh), I get following error

# id
uid=0(qsecofr) gid=0

# npm root -g
Error: EPERM, Not owner
    at /QOpenSys/QIBM/ProdData/OPS/Node6/lib/node_modules/npm/node_modules/uid-number/uid-number.js:49:16
    at ChildProcess.exithandler (child_process.js:197:7)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:877:16)
    at Socket.<anonymous> (internal/child_process.js:334:11)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at Pipe._handle.close [as _onclose] (net.js:498:12)

Doing the same with another user profile (*SECOFR class) works fine:

$ npm root -g
/QOpenSys/QIBM/ProdData/OPS/Node6/lib/node_modules

Comments (5)

  1. Aaron Bartell

    Unless I am missing something this isn't related to this project (Node.js db connector) and is instead a general Node.js issue.

    Would probably be best to log a PMR.

    Note IBM has updated the RFE for open sourcing the Node.js port to have a status of "under consideration" so one might conclude that in the future we will have a repo to log these issues vs doing a PMR.

  2. mengxumx Account Deactivated

    Hello @lalevee ,

    You can work around the issue by changing the default user id to 0 --

    File:

    /QOpenSys/QIBM/ProdData/OPS/Node6/lib/node_modules/npm/lib/config/defaults.js

    Line 213:

    user: process.platform === 'win32' ? 0 : 'nobody',

    -->

    user: 0,

    Root cause:

    setuid() on PASE can not accept a 'nobody' parameter.

  3. Log in to comment