![]() |
How to use root within script/program?
I have been trying to find the proper way how to let a script have root permission. But haven't found an answer. I am trying to make it easier for people using the Awoken-Icon-theme changing the /usr/share/pixmaps/ icons. And am pretty much finish with the gui.
I don't want the user needing to open an terminal and do sudo gainroot. Even better if Rootsh wasn't needed at all. Right now all my solutions ends up in the use/installation of rootsh. Is there a way passed this? Like the use of a sudoers file in "/etc/sudoers.d/". If i make this file it doesn't seam to recognize it. It still gives be permission denied when doing "/usr/bin/script". Same goes for if i am putting: Code:
if [ `id -u` != 0 ]; then Also what is the proper way of giving "chmod +x"? Does it keep the executable permission through an install/upgrade? I do not have scratchbox .. am doing all the testing on the n900. |
Re: How to use root within script/program?
One way to achive that would be:
Make a sudoers file with this inside: Code:
user ALL = NOPASSWD: /home/user/.scriptfolder/script.py and place it in /etc/sudoers.d/ in the first line of your py code add this to make it execute directly: Code:
#!/usr/bin/python2.5 Code:
os.system('sudo /home/user/.scriptfolder/script.py') |
Re: How to use root within script/program?
Have pretty much done that already.. except for the "#!/usr/bin/python2.5" string.
I have mixed PyQT with Bash. Could that cause the problem? Basically i run an gui with python. It has three buttons. The action of the buttons lay in a sh-script. The sh-script contains some for-loops that cp/rm/mv files. I have not gained enough competence to do that in python yet.. why i do it through a shell-script. I will go through it again to see if i missed something.. thanks a lot for the reply ;) |
Re: How to use root within script/program?
Quote:
Code:
if [ `id -u` != 0 ]; then |
Re: How to use root within script/program?
Setuid maybe? Here's an explainiation I pretty much picked at random from a Google search.
|
Re: How to use root within script/program?
The GUI should be run as user and the three scripts as root. Otherwise the GUI will not have all graphic elements.
In the sudoers file you can have more than one scripts defined like (there is no line break): Code:
user ALL = NOPASSWD: /somewhere/script1.sh /somewhere/script2.sh |
Re: How to use root within script/program?
without any modifications to sudoers and whatnot you can use run-standalone.sh like this:
sudo /usr/bin/run-standalone.sh /path/to/runthisscriptasroot.sh That will run "runthisscriptasroot.sh" as root. EDIT: tested it with this script: #!/bin/sh whoami > whoami.txt works :) |
Re: How to use root within script/program?
Thanks for all of the suggestions
Update: The run file is /usr/share/application/hildon/awoken.desktop. It uses the gui-file /opt/awoken-extras/awoken.py that uses /opt/awoken-extras/data.sh depending on what button you pressed. By using the "run-standalone.sh" i am able to run the awoken.py file as root.. but when it want to execute data.sh it get a permission error. I have tried with both user and root permission on the awoken.py file. So it is: awoken.desktop >> awoken.py >> data.sh I have tried with and without the awkoen.sudoers in /etc/sudoers.d/ The files are in it's actual folder so if somebody want to try it on the n900 the only need is to unpack it to root. You should comment out the data.sh so no icons are changed. The file is here: http://dl.dropbox.com/u/3143026/awok...e-1.1-5.tar.gz |
Re: How to use root within script/program?
Quote:
|
Re: How to use root within script/program?
Quote:
Saturn have looked upon my code and i think he solved it. The install file will contain a postinst file to sett the proper permissions. |
All times are GMT. The time now is 02:45. |
vBulletin® Version 3.8.8