Comments (5)
I tried the following on macOS 10.12.2 and it worked fine:
var sudo = require('sudo-prompt');
var command = "chown -R $(whoami) testdirectory";
sudo.exec(command, {}, console.log);
What does which whoami
return?
Are you sure that pathToCopy
exists?
What platform are you on?
Do you know that whoami
when run under sudo will probably return root
? You may want to get the user name outside of the sudo session first.
from sudo-prompt.
Yes path exists, I am in darwin and win32, crossplatform app.
Maybe I should reformulate the question:
I am doing an installer and I want to give permissions to user to make various directories and copy files.
Do you know how I can execute a javascript function with privileges?
Thanks!
from sudo-prompt.
Yes path exists, I am in darwin and win32, crossplatform app.
Your command as you gave it above will most likely not work on win32, since chown
does not exist on win32.
You can use sudo-prompt
to execute any shell command within a sudo session. For instance, if you need to execute a javascript function with privileges as you say then you could use sudo-prompt
to launch node script.js
. But from there, the rest is up to you.
Some suggestions:
- Do the simplest thing possible first, then build from there.
- Test your command in the terminal first on all platforms to make sure it works. If it does not work in the terminal then it will not work in
sudo-prompt
. - Make sure you do not rely on any environment variables or current working directory when executing your command. Use absolute paths.
from sudo-prompt.
Hi,
I'm sorry but I'm little lost:
Now, I have node script (js) that copy all files.
This script is called by sudo-prompt like this:
var command = 'node ' + path.resolve(__dirname, '../vendor/installer/installationsudo.js') + ' "' + parameter + '"';
sudo.exec(command, options, function (error, stdout, stderr) {
if (error) {
console.log(error)
self.set('installationResults', error);
self.set('installationFinished', true);
} else {
console.log(stdout)
console.log(stderr)
self.set('installationResults', "Installation done.");
self.set('installationFinished', true);
}
});
This code works in debug mode, but not compiled with electron.
I am using electron v1.5.0 (with node v7.4.0), I thought that was for something wrong in my script, but if I execute this, also fails:
var command = 'node -v'';
sudo.exec(command, options, function (error, stdout, stderr) {
if (error) {
console.log(error)
} else {
console.log(stdout)
console.log(stderr)
}
});
And I have same problem, in debug mode all is ok but once compiled no works.
I know that is not a problem with sudo-prompt, but I hope that you can help me, thanks!
from sudo-prompt.
Your second example var command = 'node -v'';
has an extra single quote at the end of the line which would not compile.
It may also be that when Electron runs, it runs using a different environment, so you need to reference the node binary using an absolute path. Probably /usr/local/bin/node
instead of just node
.
from sudo-prompt.
Related Issues (20)
- 'Command failed' in Electron app HOT 1
- Not possible in Mac App Store, aka app-sandbox HOT 5
- macOS Catalina Operation not permitted HOT 1
- OS dialog prompt is not being prompted in Windows 10 HOT 1
- Operation not permitted in macOS with sudo-prompt
- Prompt shows but name and icon are not visible on macOS HOT 8
- "User did not grant permissions" if I click "Yes" too quickly on Windows? HOT 1
- `sudo-prompt` fails to detect `pkexec` or `kdesudo` in "strictly" confined snap
- Special characters handling on Linux
- Strange behaviour with Electron 9 on Win10 HOT 1
- in Eelectron app Rendering process, sudo run cp not work
- Hello, why option.name just support [a-z0-9 ] ?
- How to get elevated shell and run a command without sudo prefix HOT 1
- macOS: Application cannot be opened because the developer cannot be verified
- BigSur 11.1 issue: The authorization was denied since no user interaction was possible HOT 1
- Linux: option.env not used
- Unexpected behaviour with linux - electron.js HOT 1
- electron exe with root system privileges in linux, It's possible to do ?
- How to run multiple commands without requiring password every time HOT 6
- Any pkg similar to this, but without root/admin?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sudo-prompt.