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

问题描述 投票:0回答:4

我在 CentOS 上以 root 用户身份从源代码编译了 Asterisk 11。现在我希望 Asterisk 作为用户 asterisk 组 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

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

我恳请您告诉我如何继续让星号在星号组中作为星号运行。顺便说一句,如果您添加有关要更改哪些文件和目录的权限的说明,以便根据我的需要运行星号,那就太好了。

非常欢迎提供反馈。

permissions asterisk
4个回答
5
投票

停止星号

首先您需要创建星号用户(如果没有的话)(大多数情况下是在安装时自动创建的) 然后

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

接下来将以下目录(spool、lib 和 run)的所有权授予 asterisk

#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

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

AST_USER="asterisk"
AST_GROUP="asterisk"

最后编辑文件/etc/asterisk/asterisk.conf 取消注释运行用户和运行组作为星号

runuser = asterisk             
rungroup = asterisk

重新启动星号

#/etc/init.d/asterisk start

这个应该没问题


2
投票

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

注意:您可以更改

/var/run/asterisk/
/var/spool/asterisk/
文件夹的权限,也可以更改
log
文件夹的权限。


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 上看到


0
投票

注意:您拥有 /var/run/asterisk/ 和 /var/spool/asterisk/ 文件夹的更改权限

重新启动时,/var/run/asterisk 权限将重置为 755 root asterisk,并且守护程序将无法将 PID 文件写入该文件夹。 添加以下行: d /var/run/asterisk 0775 根星号 - 到 /usr/lib/tmpfiles.d/var.conf 中的 systemd 文件,以便运行文件夹在重新启动后具有正确的权限。

© www.soinside.com 2019 - 2024. All rights reserved.