当前位置: 首页 > 面试题库 >

如何在初始化脚本中以特定用户身份运行命令?

顾泰平
2023-03-14
问题内容

我正在编写一个初始化脚本,该脚本应该以与root用户不同的用户身份执行单个命令。这是我目前正在做的事情:
sudo -u username command

通常,这在Ubuntu / Debian上可以正常工作,但是在RHEL上,该脚本以command挂起方式执行。
还有另一种以其他用户身份运行命令的方法吗?
(请注意,我不能使用lsb初始化函数,因为它们在RHEL / Centos 5.x中不可用。)


问题答案:

在RHEL系统上,该/etc/rc.d/init.d/functions脚本旨在提供与所需内容相似的脚本。如果您将其作为源代码放在init脚本的顶部,则所有功能均可用。

为此提供的特定功能是daemon。如果打算使用它来启动类似守护程序的程序,则简单的用法是:

daemon --user=username command

如果对于您所需要的东西来说过于繁琐,则有runuser(请参阅参考资料man runuser以获取完整信息;-u用户名之前可能需要某些版本):

/sbin/runuser username -s /bin/bash -c "command(s) to run as user username"


 类似资料:
  • 问题内容: 我想到了suPHP,但这不是我所需要的。以其他用户身份运行整个PHP脚本并不能达到我的目的。我只需要以其他用户身份运行一个Linux命令行即可。 可能吗? 问题答案: 您可以尝试shell_exec函数和sudo 编辑 :看到sudo提示输入密码,您可能想使用proc_open,它允许您使用管道。请参阅此注释,以了解如何创建自定义密码管道。

  • 问题内容: 我需要在Jenkins中以root身份而不是默认用户身份运行Shell脚本。我需要更改什么? 我的sudoers文件是这样的: 问题答案: 您必须使用以下命令运行脚本: 但是在您必须允许在中运行脚本之前。

  • 问题内容: 因此,我试图使用子进程从python脚本中以超级用户身份运行一个进程。在ipython shell中,类似 工作正常,但是一旦将其粘贴到脚本中,我就会开始获得:。 我猜这是由于sudo处理ubuntu上的环境的方式。(我也尝试和与无济于事) 所以我的问题基本上是,如果我想以超级用户身份运行,并在需要时提示用户输入超级用户密码,我该怎么做?我无意在脚本中存储密码。 编辑: 我尝试将命令既

  • 我正在尝试以root用户身份运行脚本。这是我的密码 它在出错 我也遵循了这些方法,但最终出现了错误

  • 问题内容: 我正在尝试让python删除一些目录,但出现访问错误。我认为python用户帐户没有权限吗? 是我运行脚本时得到的。 我试过了 它们都返回相同的错误。 问题答案: 即使将文件和目录设置为“只读”,即使我们刚刚复制了文件和目录,我们也遇到了问题。为您提供某种异常处理程序来处理这种情况。您调用它并提供一个异常处理程序,如下所示: 您可能想尝试一下。

  • 问题内容: 我在本地主机上运行Apache。通过以www- user用户身份运行的PHP脚本,我想控制我的机器上Rhythmbox的播放。到目前为止,我的PHP脚本中有一个简单的命令: 当我像我一样从命令行运行它时,它的效果很好,但是如果它以www-user身份运行,我想不知道/无法访问我的Rhythmbox实例。 有没有一种简单的方法可以让该PHP脚本以我的用户而不是www-user的身份运行,