如何以根用户身份运行自动启动应用程序?

史密斯

我当前正在使用需要管理特权的VPN应用程序,并且已将该应用程序添加到我的自动启动中。但是,每次我登录时,总是会要求我输入密码以授予对此应用程序的权限,由于我只是使用相同的密码登录,因此这是非常多余的。

无论如何,是否可以让我自动启动该应用程序而无需输入密码?我已经尝试过执行autostart命令sudo airvpn,但这导致应用程序根本无法打开。

为了澄清起见,我不希望在引导时运行命令,而是希望在登录时运行命令。这个问题是相关的,但是,我尝试添加exec airvpn/etc/rc.local,登录时什么也没有发生。

TSJ拿破仑117

如果您正在运行图形程序,也许应该避免使用sudo,因为它只能通过终端窗口询问您的密码,这对图形程序不利。(除非您从终端启动这些程序。)我曾经推荐gksugksudo,但是遗憾的是,这两个程序都已停产,并且在Ubutnu的最新版本中不再可用。您可以改为使用policykit以root身份运行程序pkexec airvpn这也需要密码,但是可以通过图形弹出窗口提示输入密码,因此不依赖于在终端中键入密码。

如果您不想每次都输入密码,这里有一些提示,提示您如何以root用户身份执行程序而无需输入密码。

赛义德

如果airvpn可执行文件是二进制文件(而不是文本文件),则应该能够使用chmod命令更改文件权限以激活setuid模式,这意味着它将始终以拥有该文件的用户身份运行。(要确保该用户是root用户,请运行sudo chroot $(which airvpn)。)这不需要密码,也不需要您执行以下任何步骤。但是,它将要求您运行以下命令:sudo chmod u+s $(which airvpn)但是,此技巧不适用于文本文件(python程序,shell脚本等)。另外,如果您更新了此文件,则可能必须再次执行此操作。下次您再次更新时。然后再次...

制作sudo配置文件

BTW sudo(以及扩展名gksudogksu,都使用与相同的配置sudo)和policykit(可以使用来以root身份执行程序pkexec)都可以被编程为运行程序,而无需输入密码。IDK如何使用policykit做到这一点,但我可以教您如何使用来实现这一点sudo在继续之前,您应该在后台运行一个root shell,以防万一出问题。(您可能会完全失去使用能力sudo,请参见下文)。/etc/sudoers.d目录中创建一个文本文件只要它没有.字符且不以字符结尾,就可以随意命名~

在继续之前,我应警告您,您需要知道airvpn可执行文件的路径如果您进入which airvpn终端,它应该告诉您该文件在哪里。假设是/usr/bin/airvpn,您可以输入:

    %admin ALL = NOPASSWD:/usr/bin/airvpn

并将其保存在/etc/sudoers.d目录中。使用该chmod命令将文件许可权设置为0440可能是一个好主意。您可以通过运行(以root身份)chmod 0440 file,用新创建的文件名替换“ file”来做到这一点

现在,打开一个终端,并通过运行来测试此新配置sudo airvpn(“ new”一词以粗体显示的原因是,即使您没有成功地配置为避免要求您输入sudo密码,如果您已经sudo在现有终端中执行了命令,也可能不会sudo要求您输入密码。)如果您能够在新的终端上执行此操作,则说明您airvpn无需密码即可成功执行现在,您要做的就是将启动项更改为run sudo airvpn,那么您就可以顺利进行了。无论可执行文件是二进制文件还是文本文件,这都将起作用。另外,无论您更新该程序的频率如何,您都只需执行一次。

不好了!它没有用,现在sudo给了我错误!

如果出现问题,并且您失去sudo了以root用户身份执行任何操作的能力,则可以删除新创建的文件,并且sudo的行为应与以前相同。(请记住,当我建议您保持根外壳程序运行时?您可能需要它来删除该文件。当然,您可以通过运行来执行根外壳程序pkexec su,然后使用它来删除该文件。帐户有密码,su应该这样做。)

gksudo替换

尽管gksudo可能已经死了,但是有一种方法可以自己进行类似的替换。步骤一,安装ssh-askpass软件包:sudo apt install ssh-askpass然后,使用以下命令创建一个shell脚本(使用您喜欢的文本编辑器):

#!/bin/sh

export SUDO_ASKPASS=/usr/lib/ssh/x11-ssh-askpass
exec sudo "$@"

您可以将其另存为gksudo现在,您需要使该脚本可执行,并将其复制到可以执行该脚本的位置。您可以结合使用heinstall命令,让您同时执行这两项操作:sudo install -o 0 -g 0 -m 0755 ./install /usr/local/sbin(如果您没有/usr/local/sbin目录,则可能要创建一个目录:sudo mkdir -p /usr/local/sbin。)您可能还想运行rm install,这样就不会造成无用的第二个副本。

现在,您可以输入gksudo airvpn,并且会出现一个非终端的提示,要求您输入密码。您可以重新使用它来制作应用程序启动器,启动项或其他任何东西。由于此脚本依赖于sudo后端,因此您进行的任何配置也sudo将在此处应用。因此,如果您的sudo配置失败,这可能会成为一个后备-除非您无法使用sudo进行任何操作,在这种情况下,您只能靠自己了。(因此,例如,如果您的/etc/sudoers.d/*文件由于某种原因而被删除。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

如何以根用户身份运行Dolphin?

来自分类Dev

如何在启动时以特定用户身份运行应用程序?

来自分类Dev

当需要用户输入时,如何在启动时自动运行应用程序?

来自分类Dev

如何以Django非根用户身份运行gunicorn

来自分类Dev

如何以管理员身份启动C#控制台应用程序

来自分类Dev

如何在启动时自动以root身份启动自定义应用程序?

来自分类Dev

如何在启动时自动以root身份启动自定义应用程序?

来自分类Dev

如何以非root用户身份启动运行级别3?

来自分类Dev

如何以编程方式获取MIUI Security应用程序自动启动权限?

来自分类Dev

如何停止应用程序自动启动

来自分类Dev

以本地用户身份在启动时自动启动python GUI应用程序(beagle bone black)

来自分类Dev

如何以根用户身份编辑文件?

来自分类Dev

如何在登录时以root用户身份启动gui应用程序?

来自分类Dev

如何自动运行hadoop应用程序?

来自分类Dev

如何为应用程序创建服务用户并在启动时从该用户运行它

来自分类Dev

如何配置我的应用程序使其自动以管理员身份运行?

来自分类Dev

Linux脚本/应用程序以什么用户身份运行?

来自分类Dev

如何以编程方式启动Windows Store应用程序?

来自分类Dev

如何以更方便的方式启动我的应用程序?

来自分类Dev

如何使Windows窗体应用程序以其他用户身份运行?

来自分类Dev

如何从Linux上运行的.NET Core应用程序对Windows域用户进行身份验证

来自分类Dev

如何使用pkexec以root用户身份运行GUI应用程序?

来自分类Dev

我的应用程序以sudo身份运行,如何使用用户的凭据将其设为git pull?

来自分类Dev

如何通过用户定义的快捷方式自动启动应用程序

来自分类Dev

如何创建在 Windows 启动时自动运行的控制台应用程序

来自分类Dev

如何以用户(docker)身份启动?

来自分类Dev

如何以DLL形式运行Page应用程序

来自分类Dev

如何以编程方式从Windows 10应用程序启动Camera应用程序?

Related 相关文章

  1. 1

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

  2. 2

    如何以根用户身份运行Dolphin?

  3. 3

    如何在启动时以特定用户身份运行应用程序?

  4. 4

    当需要用户输入时,如何在启动时自动运行应用程序?

  5. 5

    如何以Django非根用户身份运行gunicorn

  6. 6

    如何以管理员身份启动C#控制台应用程序

  7. 7

    如何在启动时自动以root身份启动自定义应用程序?

  8. 8

    如何在启动时自动以root身份启动自定义应用程序?

  9. 9

    如何以非root用户身份启动运行级别3?

  10. 10

    如何以编程方式获取MIUI Security应用程序自动启动权限?

  11. 11

    如何停止应用程序自动启动

  12. 12

    以本地用户身份在启动时自动启动python GUI应用程序(beagle bone black)

  13. 13

    如何以根用户身份编辑文件?

  14. 14

    如何在登录时以root用户身份启动gui应用程序?

  15. 15

    如何自动运行hadoop应用程序?

  16. 16

    如何为应用程序创建服务用户并在启动时从该用户运行它

  17. 17

    如何配置我的应用程序使其自动以管理员身份运行?

  18. 18

    Linux脚本/应用程序以什么用户身份运行?

  19. 19

    如何以编程方式启动Windows Store应用程序?

  20. 20

    如何以更方便的方式启动我的应用程序?

  21. 21

    如何使Windows窗体应用程序以其他用户身份运行?

  22. 22

    如何从Linux上运行的.NET Core应用程序对Windows域用户进行身份验证

  23. 23

    如何使用pkexec以root用户身份运行GUI应用程序?

  24. 24

    我的应用程序以sudo身份运行,如何使用用户的凭据将其设为git pull?

  25. 25

    如何通过用户定义的快捷方式自动启动应用程序

  26. 26

    如何创建在 Windows 启动时自动运行的控制台应用程序

  27. 27

    如何以用户(docker)身份启动?

  28. 28

    如何以DLL形式运行Page应用程序

  29. 29

    如何以编程方式从Windows 10应用程序启动Camera应用程序?

热门标签

归档