[rrd-developers] Question regarding -s option of rrdcached

Bernard Li bernard at vanhpc.org
Sat Jul 10 04:02:42 CEST 2010


Hi all:

I understand that the new '-s' option for rrdcached will change the
group ownership of the socket specified by -l following the -s
argument, eg:

# rrdcached -s rrdcached -l unix:/tmp/rrdcached.socket

would change the group ownership of the socket to group 'rrdcached'.

However, if I specify -s without -l, I would expect the default socket
created by rrdcached would have the ownership changed, like:

# rrdcached -s rrdcached

The default socket created is still owned by user 'root'.

Is this considered a bug?

Also, if you run the following as root:

# rrdcached -s root -l unix:/tmp/rrdcached.socket

the following block of code from rrd_daemon.c gets executed:

2544	  if (sock->socket_group != (gid_t)-1)
2545	  {
2546	    if ( (chown(path, getuid(), sock->socket_group) != 0) ||
2547	         (chmod(path, (S_IRUSR|S_IWUSR|S_IXUSR | S_IRGRP|S_IWGRP)) != 0) )
2548	    {
2549	      fprintf(stderr, "rrdcached: failed to set socket group
permissions (%s)\n", strerror(errno));
2550	    }
2551	  }

So I believe there is some issue with the comparison.

Finally, would people object to having a new option where you can
change the user ownership of the socket?

Thanks,

Bernard



More information about the rrd-developers mailing list