我在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
我显然添加了用户星号并添加了星号组。
我恳请您告诉我如何在组星号中将星号运行为星号。顺便说一句,如果您添加了关于更改权限的文件和目录的指示,为了让星号按照我的需要运行,那就太棒了。
反馈将非常受欢迎。
答案 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
应该没问题