it-swarm.cn

如何以其他用户身份运行应用程序?

我使用krusader进行文件管理。问题是Apache的DocumentRoot应该在chown www-data:www-data /path/to/www下。因此,使用krusader(在我的帐户下运行)时,我确实需要对/path/to/www进行写权限。我不知道其他开发人员如何才能继续如此限制!

我想知道我是否可以以www-data的身份运行krusader,那么我将能够轻松地播放文件。但是使用su - www-data询问了www-data的密码!

因此,我如何在Gnome中以另一个用户(如www-data)的身份运行应用程序(如krusader)?

还是我的情况有其他解决方案? (艰难的是,我真的很好奇知道答案!)

请记住,我知道我可以运行它作为root!但这会在使用cpmkdir时引起一些权限问题。

PS:Sudogksudo没有帮助:

$ gksudo -u -www-data krusader
No protocol specified
krusader: cannot connect to X server :0.0

最后注:根据最佳答案,我做了chmod u+w /path/to/www,问题解决了。但是我仍然没有以其他用户的身份成功打开krusader!

17
Alexar

重新考虑这个问题(我希望能正确理解您的问题,但是如果我错了,请纠正我),我找到了另一个解决方案,我认为您不需要将应用程序作为www-data运行,也不需要使用权限。你之前这么说:

Apache的DocumentRoot应该位于www-data:www-data/path/to/www下

但是实际上,这并非完全正确:Apache的DocumentRoot必须可由www-data读取,但不一定由它拥有。默认情况下,在Ubuntu桌面中,您创建的所有文件和目录对所有人都是可读的,因此您可以将DocumentRoot设置为主文件夹内的目录,例如:

DocumentRoot /home/user/my-project/my-document-root
4
Andrea Corbellini
xhost +SI:localuser:uname
gksudo -u uname -l "firefox"
xhost -SI:localuser:uname

其中uname =模拟用户的名称。看到的地方: http://ubuntuforums.org/showthread.php?p=10399617

在我的特立独行的盒子上工作,分叉的Skype中没有声音,并且〜/ .profile.d可能未执行。

8
Anton S. Kraievoy

如果您是从菜单系统运行的,则需要使用alacarte(系统>首选项>主菜单)并更改krusader的条目,然后在其前面添加:gksudo -u www-data就像是:

gksudo -u www-data krusader

这将启动管理任务“提示”窗口,根据 GKSudo手册页 ,该窗口是一个

Su和Sudo的GTK +前端

仅使用gksudo而不使用-u开关将以root身份运行命令。

5
Marco Ceppi

就像Marco提到的那样,您可以使用gksudo -u www-data <command>以其他用户身份运行命令。我通常使用此命令以gdm的身份运行命令,到目前为止,除我自己的密码外,它从未问过我什么。

如果您使用的是kde,则等效值为kdesu -u www-data krusader。我认为,由于krusader是kde应用程序,因此使用kdesu可能会更好。有关kdesu的更多详细信息 此处

我已经使用gksudo在系统上以其他“人类”用户的身份运行命令,并且当系统提示我输入密码时,我键入我的密码。

4
koushik

要使用您自己的密码成为www-data,请使用以下命令:

$ Sudo su www-data
[Sudo] password for <your username>: [enter your password]
$ whoami
(you should see www-data here)

但是,我认为您不能从那里运行GUI应用程序。

我通常只拥有/var/www中的所有内容,但允许所有人读取权限:

/var/www$ Sudo chown -R [your-username]\:[your-group] *
/var/www$ find . -type d -exec chmod a+rx {} \;
/var/www$ find . -type f -exec chmod a+r {} \;

我希望这可以减轻您的痛苦:)

4
dr Hannibal Lecter

我相信您需要在终端上运行以下命令:

xhost +SI:localuser:<user-to-run-as>

然后,您可以执行以下操作:

Sudo su - <user-to-run-as>

最后,运行您的应用程序:

krusader

可以做到这一点,当然要确保用您的用户名替换<user-to-run-as>

3
nicholas.alipaz

受Anton S. Kraievoy的启发,我使用了类似的解决方案,该解决方案对我有用。在使用Krusader的用户中,我向xhhost添加了一个新用户:

xhost +SI:localuser:username

比请登录:

su - username

比krusader作为新用户中的新实例正常启动:

krusader

注意,将在〜/ .kde/share/config/krusaderrc中创建一个新配置。

0
hariprasad

'gksu'和'kdesu'都是'Sudo'的图形前端,这是在纯文本环境中应使用的工具。 “ gksu”和“ kdesu”工具要求您处于图形模式,这说明了“无法连接到X服务器”错误。

如果要以其他用户身份执行控制台命令,请使用命令“ Sudo -u username命令”。

0
Sense Hofstede

在www-data下运行图形应用程序会给您带来一些问题。您可以做的就是将自己添加到www-data组,从而可以更改所需的所有文件:

Sudo adduser $USER www-data

注意:可能,您需要从会话中注销才能使更改生效。

如果在执行此命令后仍然无法更改某些文件,则只需确保对其具有写权限:

Sudo chown www-data:www-data /var/www/file
chmod g+w /var/www/file
0
Andrea Corbellini