AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 5410
Accepted
Alexar
Alexar
Asked: 2010-10-10 07:11:24 +0800 CST2010-10-10 07:11:24 +0800 CST 2010-10-10 07:11:24 +0800 CST

如何以另一个用户身份运行应用程序?

  • 772

我使用 krusader 进行文件管理。问题是 apache 的DocumentRoot应该在chown www-data:www-data /path/to/www. 所以使用 krusader(在我的帐户下运行)我没有写访问权限,/path/to/www而我真的需要。不知道其他开发者怎么能在这样的限制下继续做事!

我想知道我是否可以运行 krusader,因为www-data这样我就可以轻松地玩文件了。但是使用su - www-data询问我www-data的密码!

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

或者我的情况还有其他解决方案吗?(很难,我真的很想知道答案!)

请记住,我知道我可以以 root 身份运行它!但这会在使用cpand时导致一些权限问题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!

gnome permissions sudo
  • 9 9 个回答
  • 30568 Views

9 个回答

  • Voted
  1. Anton Kr
    2011-01-29T06:14:16+08:002011-01-29T06:14:16+08:00
    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
  2. Marco Ceppi
    2010-10-10T08:43:51+08:002010-10-10T08:43:51+08:00

    如果您从菜单系统运行它,您将要使用alacarte(系统 > 首选项 > 主菜单)并更改 krusader 的条目并在其前面添加:gksudo -u www-data这应该会产生如下内容:

    gksudo -u www-data krusader

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

    su 和 sudo 的 GTK+ 前端

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

    • 5
  3. koushik
    2010-10-10T07:17:05+08:002010-10-10T07:17:05+08:00

    就像 Marco 提到的,您可以使用gksudo -u www-data <command>以其他用户身份运行命令。我经常使用它来运行命令,gdm到目前为止,除了我自己的密码之外,它从未要求我提供任何其他内容。

    如果您使用的是 kde,则等效于kdesu -u www-data krusader.我认为,由于 krusader 是一个 kde 应用程序,它可能会更好地与kdesu. 有关 kdesu 的更多详细信息,请点击此处。

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

    • 4
  4. dr Hannibal Lecter
    2010-10-11T08:30:57+08:002010-10-11T08:30:57+08:00

    要使用您自己的密码成为 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
  5. Best Answer
    Andrea Corbellini
    2010-10-13T04:59:09+08:002010-10-13T04:59:09+08:00

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

    Apache 的 DocumentRoot 应该在 chown www-data:www-data /path/to/www

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

    DocumentRoot /home/user/my-project/my-document-root
    
    • 4
  6. nicholas.alipaz
    2013-02-27T20:40:20+08:002013-02-27T20:40:20+08:00

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

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

    然后你可以这样做:

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

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

    krusader
    

    应该这样做,<user-to-run-as>当然要确保用您的用户名替换。

    • 3
  7. Sense Hofstede
    2010-10-11T08:02:01+08:002010-10-11T08:02:01+08:00

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

    如果您想以不同的用户身份执行控制台命令,请使用命令“sudo -u username command”。

    • 0
  8. Andrea Corbellini
    2010-10-11T08:41:41+08:002010-10-11T08:41:41+08:00

    在 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
  9. hariprasad
    2014-09-18T01:32:29+08:002014-09-18T01:32:29+08:00

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

    xhost +SI:localuser:username
    

    比请登录:

    su - username
    

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

    krusader
    

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

    • 0

相关问题

  • 停止菜单图标闪烁

  • Ubuntu 在什么许可证下?可以合法修改和分发吗?

  • 是否有适用于 IMAP 邮件帐户的 Gnome 小程序?

  • 文件权限如何工作?文件权限用户和组

  • 如果顶部面板中缺少会话小程序,如何注销?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何安装 .run 文件?

    • 7 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    如何获得 CPU 温度?

    • 21 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Marko Smith

    你如何重新启动Apache?

    • 13 个回答
  • Marko Smith

    如何卸载软件?

    • 11 个回答
  • Marko Smith

    如何删除 PPA?

    • 26 个回答
  • Martin Hope
    NES 如何启用或禁用服务? 2010-12-30 13:03:32 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    Olivier Lalonde 如何在结束 ssh 会话后保持进程运行? 2010-10-22 04:09:13 +0800 CST
  • Martin Hope
    David B 如何使用命令行将用户添加为新的 sudoer? 2010-10-16 04:02:45 +0800 CST
  • Martin Hope
    Hans 如何删除旧内核版本以清理启动菜单? 2010-08-21 19:37:01 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve