gpt4 book ai didi

linux - 从不同的用户运行可执行文件

转载 作者:太空宇宙 更新时间:2023-11-04 13:04:23 25 4
gpt4 key购买 nike

在创建 rpm 规范文件时,我在 %pre 部分创建了一个新用户和组。但是,出于安全目的,这个新用户无权从 shell 登录。现在,当我安装 rpm 时,这个新用户已成功创建。但是,我希望用新创建的用户启动安装的 rpm 服务。目前我只是写; 'filePath/file.exe file.cfg' 执行 file.exe 及其配置文件,即我的 'init.d' 文件中的 file.cfg 以启动服务。我如何修改此命令以启动相同的服务,但使用我在安装 rpm 时创建的用户?基本上我想在我的 init.d 文件中执行该程序,但是通过不同的用户,就像如果我需要的用户是 super 用户,我会用 sudo 做的那样。任何反馈将不胜感激。

最佳答案

安装 rpm 和运行服务的初始起点特权。例如,在我的 CentOS 6 机器上,我在 /etc/passwd

中看到
games:x:12:100:games:/usr/games:/sbin/nologin

但以 root 身份运行时,我可以这样做:

$ sudo -u games /bin/sh
sh-4.1$ echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin
sh-4.1$ id
uid=12(games) gid=100(users) groups=100(users) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
sh-4.1$ cd
sh-4.1$ pwd
/usr/games

在您的服务脚本中,您可以使用 sudo 以另一个用户的身份运行给定的进程(尽管对同一台机器的快速检查并没有显示正在执行此操作)。

@msuchy 指出 runuser 可能更可取。我看到这是相对较新的(根据 Ubuntu runuser command? ,出现在 util-linux 2.23 -- lacking a date 使得发行说明不太有用......)。其文档中的斜评论about PAM让它听起来好像这规避了一些安全检查。也许有人对此有更好的评论

关于linux - 从不同的用户运行可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33082947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com