gpt4 book ai didi

linux - 为什么我必须对来自守护进程的命令执行 sudo 命令?

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

我对 sudo 有疑问。

从守护进程调用 Erlang 脚本。 (这个daemon进程是xinetd定义的,这个进程会在里面执行一个bash脚本,我把我的Erlang脚本命令写到bash脚本里面了)。 Erlang 脚本如下:

#! /usr/bin/env escript
main(_) ->
ok.

脚本很简单,在shell命令行下执行就ok了。

但是当我从守护进程调用它时,它失败了,返回码为非零。我真的不知道。

当我尝试 sudo/path/to/my/erlang_script 时,一切正常!!

我自己是 root。为什么我必须添加 sudo

我的 xinetd conf 是这样的:(如您所见,'user' 被设置为 'root')

service gtpgwagent
{
type = UNLISTED
flags = REUSE
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
instances = UNLIMITED
server = /lab/subsysserv/sbin/in.gtpgwagent
server_args = gtpgw
log_type = FILE /tmp/ggsnagent_logfile
log_on_success += DURATION USERID HOST EXIT
log_on_failure += USERID HOST
env = /usr/bin:/bin
port = 1761
}

最佳答案

守护进程 既不是以 root 身份运行,也不是以有权运行该脚本的用户身份运行(或者,最常见的情况是,不允许执行该脚本执行的操作),所以事情不锻炼。

以 root 身份运行,因此无论您尝试什么总是有效(这有点可怕,所以要小心)。

更改脚本的权限以适应 xinetd 将守护进程用户设置为的任何内容,并确保您让脚本执行的任何操作都是允许守护进程用户执行的操作。不过,无论您做什么,都不要将守护进程设置为以 root 用户身份运行——那只是等待发生的意外(或破解)。

编辑

RHEL 6.x 几乎可以保证阻止以 root 身份运行的守护进程几乎任何

关于linux - 为什么我必须对来自守护进程的命令执行 sudo 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29158662/

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