Date: Thu, 16 Nov 2000 12:00:49 -0500 From: "Andresen,Jason R." <jandrese@mitre.org> To: Garrett Wollman <wollman@khavrinen.lcs.mit.edu> Cc: void <float@firedrake.org>, freebsd-current@FreeBSD.ORG Subject: Re: Proper permissons on /var/mail Message-ID: <3A1412C1.96608727@mitre.org> References: <Pine.BSF.4.21.0011160650180.41866-100000@arnold.neland.dk> <20001116151809.A15312@firedrake.org> <200011161636.LAA83126@khavrinen.lcs.mit.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
Garrett Wollman wrote: > > <<On Thu, 16 Nov 2000 15:18:09 +0000, void <float@firedrake.org> said: > > > I have a similar problem -- every time I make world, perms on /var/mail > > get set to 775. Mutt considers my mailbox read-only until I change it > > to 1777. > > It is misconfigured (or perhaps just broken). 1777 mode for /var/mail > is insecure, but was necessary in the mists of ancient past, before > UNIX learned to do file locking. Unless your mail spool is shared > over NFS (don't do that), locking is reliable and .lock files should > never be used or relied upon. Not the FreeBSD's file locking works anyway. Here's the results from a test of the below program: <escaflowne/p6> (81 ~/bin/src): uname -a FreeBSD escaflowne.el.hazard 4.1.1-STABLE FreeBSD 4.1.1-STABLE #0: Sat Oct 14 18:59:16 EDT 2000 root@escaflowne.el.hazard:/usr/obj/usr/src/sys/ESCAFLOWNE i386 <escaflowne/p6> (82 ~/bin/src): ./testflock flock(2) is implemented, but not functional. And another test: %kenshin (1 ~): uname -a IRIX kenshin 6.5 01221642 IP20 %kenshin (2 ~): ./testflock flock(2) is fully functional. I hope I'm doing something wrong here, and that flock really does work on FreeBSD. #include <sys/file.h> #include <sys/wait.h> #include <sys/types.h> #include <stdlib.h> #include <unistd.h> #include <strings.h> #define TMPFILENAME "/tmp/testflock.out" #define MESSLEN 8 #define CHILDSTR "Child \n" #define PARENTSTR "Parent\n" int main( int argc, char** argv) { char message[MESSLEN]; int pid; int fd; int foo; fd = open(TMPFILENAME, O_WRONLY | O_CREAT, 0644); pid = fork(); if ( pid == 0 ) { strcpy(message, CHILDSTR); sleep(1); } else strcpy(message, PARENTSTR); flock(fd, LOCK_EX); lseek(fd, 0, SEEK_END); write(fd, message, MESSLEN - 1); sleep(2); lseek(fd, 0, SEEK_END); write(fd, message, MESSLEN - 1); flock(fd, LOCK_UN); close(fd); if ( pid != 0 ) { wait(&foo); /* Test the file, see if flock works */ fd = open(TMPFILENAME, O_RDONLY); read(fd, (void*)message, MESSLEN - 1); /* Discard first */ read(fd, (void*)message, MESSLEN - 1); if (! strcmp(message, CHILDSTR)) printf("flock(2) is implemented, but not functional.\n"); else printf("flock(2) is fully functional.\n"); close(fd); } return 0; } -- _ _ _ ___ ____ ___ ______________________________________ / \/ \ | ||_ _|| _ \|___| | Jason Andresen -- jandrese@mitre.org / /\/\ \ | | | | | |/ /|_|_ | Views expressed may not reflect those /_/ \_\|_| |_| |_|\_\|___| | of the Mitre Corporation. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3A1412C1.96608727>