我使用haproxy socat获取会话数据在cacti中绘制它,/ var / run / socket-haproxy由www-data(cacti用户使用的用户)拥有,但是当我尝试以www-data am获得权限被拒绝,任何帮助将不胜感激。
sudo su - www-data echo show stat | socat unix-connect:/var/run/socket-haproxy stdio | grep inbound | cut -d, -f 5 2012/01/11 15:58:18 socat[5448] E connect(3, AF=1 "/var/run/socket-haproxy", 25): Permission denied -su: Can't open echo
所以问题是你的pipe道..你在做什么是呼应show stat作为www数据用户,但作为自己的用户运行socat。 需要用引号包起来
而且你的sudo作为用户运行一个命令是完全错误的
例如
# sudo -u www-data id uid=33(www-data) gid=33(www-data) groups=33(www-data)
你不需要额外的su,因为你已经是root了
如果你已经是root,只需使用su。 像这样的东西
su -c "echo show stat | socat unix-connect:/var/run/socket-haproxy stdio | grep inbound | cut -d, -f 5" www-data