haproxy和socat sudo

我创build了一个testing用户,并想限制这个“testing”用户通过visudo只运行下面的命令。

echo "show stat" | socat stdio /var/run/haproxy.sock 

visudo命令

 test ALL=(root)NOPASSWD:/usr/bin/socat stdio /var/run/haproxy.sock 

ls -lat /var/run/haproxy.sock

 srwxr-xr-x 1 munin haproxy 0 May 22 22:32 /var/run/haproxy.sock 

我运行了下面的命令

 test#sudo echo "show stat" | socat stdio /var/run/haproxy.sock 

错误消息

 2013/05/22 23:13:14 socat[21289] E connect(3, AF=1 "/var/run/haproxy.sock", 23): Permission denied 

我可以知道什么是visudoconfiguration不正确

在你的pipe道中,只有回声与提升的特权运行,我相信你需要在socat之前的sudo。

echoroot身份运行,但是socat不是。 试试这个:

 echo "show stat" | sudo socat stdio /var/run/haproxy.sock 

你可以定义一个普通的(非特权的)unix套接字,如:

  stats socket /var/run/haproxy/socket.sock mode 666