I use krusader for file management stuff. the problem is that apache's DocumentRoot
should be under chown www-data:www-data /path/to/www
. so using krusader (which is run under my account) I've not write access to /path/to/www
while I really need. I don't know how other developers can continue doing things with such a restriction!
I wondered if I could run krusader as www-data
then I will be able to easily play with files. but using su - www-data
asked me for www-data
's password!!
So, how can I run an application (like krusader) as another user (like www-data) in Gnome?
or is there any other solution for my case? (tough I'm really curious to know the answer!)
keep in mind that I know I can run it as root! but this will cause some permission problems when using cp
and mkdir
, you know.
PS:
sudo
and gksudo
did not help:
$ gksudo -u -www-data krusader
No protocol specified
krusader: cannot connect to X server :0.0
Final Note:
according the best answer, i did chmod u+w /path/to/www
and my problem solved. but i still has not been succeeded in opening krusader as another user!
Where uname = the name of impersonated user. Seen there: http://ubuntuforums.org/showthread.php?p=10399617
Works on my maverick box, there's no sound in the forked skype and ~/.profile.d is not executed as it might.
If you're running this from the menu system you'll want to use
alacarte
(System > Preferences > Main Menu) and change the entry for krusader and add in front of it:gksudo -u www-data
which should produce something like:gksudo -u www-data krusader
This will launch the administrative task prompt window which, according to the GKSudo Manpage, is a
Using just gksudo without the
-u
switch will run the command as root.Like Marco mentioned you can use
gksudo -u www-data <command>
to run commands as another user. I routinely use this to run commands asgdm
and so far it has never asked me for anything other than my own password.If you are using kde the equivalent is
kdesu -u www-data krusader
.I think, since krusader is a kde application, it might work better withkdesu
. More details about kdesu here.I have used
gksudo
to run commands as other "human" users on the system and when I am prompted for password, I type in mine.To become www-data with your own password, use this:
But, I don't think you'll be able to run GUI apps from there..
I usually just own everything in
/var/www
, but allow read access to everyone:I hope that will ease your pain :)
Rethinking about this question (I hope to have understood your problem right, but correct me if I'm wrong), I found an another solution and I think you don't need to run the application as www-data nor to play with permissions. You said that:
but actually, this isn't fully true: Apache's
DocumentRoot
must be readable bywww-data
, but not necessarily owned by it. By default, in Ubuntu Desktop, all files and directories you create are readable by everybody, so you can set your DocumentRoot to a directory inside your home folder, for example:I believe you need to run the following at the terminal:
Then you can do:
And lastly, run your app:
That should do it, just be sure to replace
<user-to-run-as>
with your username of course.Both 'gksu' and 'kdesu' are graphical frontends for 'sudo', which is the tool you should use when you're in a text-only environment. The 'gksu' and 'kdesu' tools require you to be in a graphical mode, that explains the "cannot connect to X server" errors.
if you want to execute a console command as a different user you use the command 'sudo -u username command'.
Running a graphical application under www-data gives you several problems. A thing you can do is adding yourself to the www-data group, so you'll be able to change all the files you need:
Note: probably, you'll need to log out from the session for the change to take effect.
If, after this command, you are still unable to change some files, just ensure that you have write permission on them:
Inspired by Anton S. Kraievoy I used similar solution, which works for me. In the user, which using Krusader I added a new user to xhhost:
Than kindly login:
Than krusader starts properly as a new instance in a new user:
Notice, that a new configuration will be created in ~/.kde/share/config/krusaderrc.