我使用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!但这会在使用cp
和mkdir
时引起一些权限问题。
PS:Sudo
和gksudo
没有帮助:
$ gksudo -u -www-data krusader
No protocol specified
krusader: cannot connect to X server :0.0
最后注:根据最佳答案,我做了chmod u+w /path/to/www
,问题解决了。但是我仍然没有以其他用户的身份成功打开krusader!
重新考虑这个问题(我希望能正确理解您的问题,但是如果我错了,请纠正我),我找到了另一个解决方案,我认为您不需要将应用程序作为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
xhost +SI:localuser:uname
gksudo -u uname -l "firefox"
xhost -SI:localuser:uname
其中uname =模拟用户的名称。看到的地方: http://ubuntuforums.org/showthread.php?p=10399617
在我的特立独行的盒子上工作,分叉的Skype中没有声音,并且〜/ .profile.d可能未执行。
如果您是从菜单系统运行的,则需要使用alacarte
(系统>首选项>主菜单)并更改krusader的条目,然后在其前面添加:gksudo -u www-data
就像是:
gksudo -u www-data krusader
这将启动管理任务“提示”窗口,根据 GKSudo手册页 ,该窗口是一个
Su和Sudo的GTK +前端
仅使用gksudo而不使用-u
开关将以root身份运行命令。
就像Marco提到的那样,您可以使用gksudo -u www-data <command>
以其他用户身份运行命令。我通常使用此命令以gdm
的身份运行命令,到目前为止,除我自己的密码外,它从未问过我什么。
如果您使用的是kde,则等效值为kdesu -u www-data krusader
。我认为,由于krusader是kde应用程序,因此使用kdesu
可能会更好。有关kdesu的更多详细信息 此处 。
我已经使用gksudo
在系统上以其他“人类”用户的身份运行命令,并且当系统提示我输入密码时,我键入我的密码。
要使用您自己的密码成为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 {} \;
我希望这可以减轻您的痛苦:)
我相信您需要在终端上运行以下命令:
xhost +SI:localuser:<user-to-run-as>
然后,您可以执行以下操作:
Sudo su - <user-to-run-as>
最后,运行您的应用程序:
krusader
可以做到这一点,当然要确保用您的用户名替换<user-to-run-as>
。
受Anton S. Kraievoy的启发,我使用了类似的解决方案,该解决方案对我有用。在使用Krusader的用户中,我向xhhost添加了一个新用户:
xhost +SI:localuser:username
比请登录:
su - username
比krusader作为新用户中的新实例正常启动:
krusader
注意,将在〜/ .kde/share/config/krusaderrc中创建一个新配置。
'gksu'和'kdesu'都是'Sudo'的图形前端,这是在纯文本环境中应使用的工具。 “ gksu”和“ kdesu”工具要求您处于图形模式,这说明了“无法连接到X服务器”错误。
如果要以其他用户身份执行控制台命令,请使用命令“ Sudo -u username命令”。
在www-data下运行图形应用程序会给您带来一些问题。您可以做的就是将自己添加到www-data组,从而可以更改所需的所有文件:
Sudo adduser $USER www-data
注意:可能,您需要从会话中注销才能使更改生效。
如果在执行此命令后仍然无法更改某些文件,则只需确保对其具有写权限:
Sudo chown www-data:www-data /var/www/file
chmod g+w /var/www/file