web-dev-qa-db-ja.com

サボテンのHaproxysocatで助けが必要

haproxy socatを使用してセッションデータを取得し、サボテンにプロットしています。/var/run/socket-haproxyはwww-data(サボテンが使用するユーザー)が所有していますが、このコマンドをwww-dataとして実行しようとすると許可が拒否された場合は、助けていただければ幸いです。

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
1
APZ

したがって、問題はパイプです。あなたがしているのは、www-dataユーザーとしてshow statをエコーし​​ますが、独自のユーザーとしてsocatを実行することです。引用符で囲む必要があります

また、Sudoがユーザーとしてコマンドを実行するのは完全に間違っています

例えば

# Sudo -u www-data id
uid=33(www-data) gid=33(www-data) groups=33(www-data)

あなたはすでにルートになっているので、そこに余分なsuは必要ありませんとにかく私は推測します

すでにrootである場合は、suを使用してください。このようなもの

su -c "echo show stat | socat unix-connect:/var/run/socket-haproxy stdio | grep inbound | cut -d, -f 5" www-data
2
Mike