如何以非root用户身份运行Asterisk?

时间:2015-05-22 20:12:58

标签: permissions asterisk

我在CentOS上以root用户身份从源代码编译了Asterisk 11。现在我希望Asterisk以用户星号组星号运行。我没有注释

#AST_USER="asterisk"
#AST_USER="asterisk"

/etc/sysconfig/asterisk

我也尝试在

中取消注释相同的变量
/usr/local/src/asterisk-11.17.1/contrib/init.d/etc_default_asterisk

我重启服务星号,甚至用引用的条件重启服务器,当我ps ax | grep [a]sterisk时,我仍然得到

4457 pts/0    S      0:00 /bin/sh /usr/sbin/safe_asterisk
4459 pts/0    Sl     0:01 /usr/sbin/asterisk -f -vvvg -c

而不是

    4457 pts/0    S      0:00 /bin/sh /usr/sbin/safe_asterisk -U asterisk -G asterisk
    4459 pts/0    Sl     0:01 /usr/sbin/asterisk -f -vvvg -c -U asterisk -G asterisk

我显然添加了用户星号并添加了星号组。

我恳请您告诉我如何在组星号中将星号运行为星号。顺便说一句,如果您添加了关于更改权限的文件和目录的指示,为了让星号按照我的需要运行,那就太棒了。

反馈将非常受欢迎。

3 个答案:

答案 0 :(得分:1)

/etc/asterisk/asterisk.conf中,您可以指定任何用户

注意:您拥有/var/run/asterisk//var/spool/asterisk/文件夹的更改权限,还可以更改log文件夹的权限。

答案 1 :(得分:1)

我遇到了同样的问题。这是 contrib 脚本中的一个错误 /etc/rc.d/init.d/asterisk

启动 safe_asterisk 守护进程的原始行是

    if [ "x$COLOR" = "xyes" ]; then
                export TERM=linux
               daemon sh -c "$DAEMON $ASTARGS -c" >/dev/null </dev/null 2>&1 &

这一行不传递任何提供的参数,即使 $ASTARGS 包含所有必需的东西。即使 -c 没有正确传递

如果您将这一行替换为:

    daemon $DAEMON -U asterisk -G asterisk

它可以绕过这个问题。

在 CentOS 7/Asterisk 13 上看到

答案 2 :(得分:0)

停止星号

首先,您需要创建星号用户(如果没有的话)(通常是在安装时自动创建的) 然后

# useradd -d /var/lib/asterisk/ asterisk

接下来将以下目录(spool,lib和run)的所有权赋予星号

#chown -R asterisk /var/spool/asterisk/ /var/lib/asterisk/ /var/run/asterisk/

从星号下载的contrib / init.d /目录复制此文件

~contrib/init.d#cp etc_default_asterisk /etc/default/asterisk

通过取消对星号用户的注释来编辑/ etc / default / asterisk文件

AST_USER="asterisk"
AST_GROUP="asterisk"

最后编辑文件/etc/asterisk/asterisk.conf 取消注释runuser和rungroup为星号

runuser = asterisk             
rungroup = asterisk

重新启动星号

#/etc/init.d/asterisk start

应该没问题