diff -ruN cfengine-2.1.0b3.org/src/init.c cfengine-2.1.0b3/src/init.c --- cfengine-2.1.0b3.org/src/init.c 2003-10-12 20:32:17.000000000 +0200 +++ cfengine-2.1.0b3/src/init.c 2003-10-12 20:36:46.000000000 +0200 @@ -167,7 +167,7 @@ snprintf(VBUFF,bufsize,"%s/ppkeys/test",VLOCKDIR); MakeDirectoriesFor(VBUFF,'n'); snprintf(VBUFF,bufsize,"%s/ppkeys",VLOCKDIR); - chmod(VBUFF,(mode_t)0700); /* Locks must be immutable to others */ + chmod(VBUFF,(mode_t)0700); /* Keys must be immutable to others */ } else { @@ -180,7 +180,10 @@ Verbose("Making sure that locks are private...\n"); chown(VLOCKDIR,getuid(),getgid()); -chmod(VLOCKDIR,(mode_t)0755); /* Locks must be immutable to others */ +if (stat(VLOCKDIR,&statbuf) != -1) { + /* Locks must be immutable to others */ + chmod(VLOCKDIR,(mode_t)(statbuf.st_mode & ~022)); /* change permissions go-w */ +} } /**********************************************************************/