я использую 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
Итак, проблема в ваших каналах. Вы повторяете команду show stat как пользователь www-data, но запускаете 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