问题
My company requires the use of Dell Encryption software.
Recently, remnants of Dell Encryption tracker files that are placed in directories has caused issues with npm install
.
Dell Encryption has CredDB2.CEF
files that get created in directories that track the state of each encrypted file. When I npm install request
, I end up getting errors in a dependency that is creating/modifying the bin files of it's install:
npm ERR! path C:\project\node_modules\sshpk\bin\CredDB2.CEF
npm ERR! code ENOENT
npm ERR! errno -4058
npm ERR! syscall chmod
npm ERR! enoent ENOENT: no such file or directory, chmod 'C:\project\node_modules\sshpk\bin\CredDB2.CEF'npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
The relevant verbose log output is:
1254 silly build sshpk@1.13.1
1255 info linkStuff sshpk@1.13.1
1256 silly linkStuff sshpk@1.13.1 has C:\project\node_modules as its parent node_modules
1257 verbose linkBins sshpk@1.13.1
1258 verbose linkBins [ { 'CredDB2.CEF': 'bin/CredDB2.CEF',
1258 verbose linkBins 'sshpk-conv': 'bin/sshpk-conv',
1258 verbose linkBins 'sshpk-sign': 'bin/sshpk-sign',
1258 verbose linkBins 'sshpk-verify': 'bin/sshpk-verify' },
1258 verbose linkBins 'C:\\project\\node_modules\\.bin',
1258 verbose linkBins false ]
Dell Encryption creates the CredDB2.CEF
file as metadata about the encryption state, however, the file created in such a matter that is is hidden from the typical file explorer (even when show hidden files is enabled) and can't be opened by applications using the full path of the file.
I suspect that maybe it is created in an un-hidden way in one tick, and then actually hidden in another tick. In the meantime the installation of the bins must do a glob on the bin directory which includes the CredDB2.CEF
file and then later does a chmod
after Dell Encryption hides the file, causing the error.
I'm not sure if this is an error that should be escalated with Dell, NPM, or with the NPM packages that are causing the error.
I've been able to reproduce the error on 2 computers, although not consistently. I suspect the inconsistent reproduction is due to a race condition on when the CredDB.CEF
file gets created/hidden.
If I install my project in a directory explicitly marked to not encrypt by the Dell Encryption software, everything works fine. From a security standpoint though, this isn't an acceptable answer.
Are there any options within npm to ignore the CEF files or to ignore these specific errors?
Are there any other work-arounds that could be used?
回答1:
Upgrade Dell Encryption to version 10.0.0.12,A31 or higher as suggested in this support article. This should resolve the CredDB.CEF file error messages seen when using node and "npm install".
Latest Dell Encryption drivers can be found here
回答2:
I faced the same issue. Dell Encryption Tool was pre-installed in the laptop and after a windows update, it started behaving inappropriately. On tracking the encryption logs, got to know that the shield service is not properly starting on the endpoint:
[03.12.19 13:40:57:329 NTUtils.cpp: 1555 E] [SUPPORT] [E] The Shield service is not running! Attempting to restart. Current service state = 1
Upgrading the Dell Encryption resolved the problem.
来源:https://stackoverflow.com/questions/49947151/npm-install-fails-in-directory-encrypted-with-dell-encryption-software-on-window