From: <don...@is...> - 2015-08-11 14:16:58
|
yet another in my series of inane problems - I'm trying to create files that are read/write by group (in linux). I've managed to get these things to work as desired: echo "hi" > /home/cmcadm/data2009/mb3 => -rw-rw----. 1 marilyn cmcadm 3 Aug 11 10:14 mb3 touch ~cmcadm/data2009/mb => -rw-rw----. 1 marilyn cmcadm 0 Aug 10 22:15 mb and yet in clisp ... [1]> (with-open-file (s "/home/cmcadm/data2009/mb2" :direction :output)) NIL => -rw-r-----. 1 marilyn cmcadm 0 Aug 11 10:13 mb2 What am I missing? |
From: Pascal J. B. <pj...@in...> - 2015-08-11 14:45:30
|
don...@is... (Don Cohen) writes: > yet another in my series of inane problems - > I'm trying to create files that are read/write by group (in linux). > I've managed to get these things to work as desired: > > echo "hi" > /home/cmcadm/data2009/mb3 > => > -rw-rw----. 1 marilyn cmcadm 3 Aug 11 10:14 mb3 > > touch ~cmcadm/data2009/mb > => > -rw-rw----. 1 marilyn cmcadm 0 Aug 10 22:15 mb > > and yet in clisp ... > > [1]> (with-open-file (s "/home/cmcadm/data2009/mb2" :direction :output)) > NIL > => > -rw-r-----. 1 marilyn cmcadm 0 Aug 11 10:13 mb2 > > What am I missing? Those are NOT Common Lisp notions. File modes, user, group, other, etc are POSIX notions. So how would you do in C? If you've found that you could use the process umask to configure the default mask used when creating files, then you know what should ask clisp about: (apropos "UMASK" "POSIX") (describe 'posix:umask) -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk |
From: <don...@is...> - 2015-08-11 15:08:47
|
> yet another in my series of inane problems - > I'm trying to create files that are read/write by group (in linux). > I've managed to get these things to work as desired: > > echo "hi" > /home/cmcadm/data2009/mb3 > => > -rw-rw----. 1 marilyn cmcadm 3 Aug 11 10:14 mb3 > > touch ~cmcadm/data2009/mb > => > -rw-rw----. 1 marilyn cmcadm 0 Aug 10 22:15 mb > > and yet in clisp ... > > [1]> (with-open-file (s "/home/cmcadm/data2009/mb2" :direction :output)) > NIL > => > -rw-r-----. 1 marilyn cmcadm 0 Aug 11 10:13 mb2 > > What am I missing? Those are NOT Common Lisp notions. File modes, user, group, other, etc are POSIX notions. So how would you do in C? As far as I can tell you'd set umask - but that's already done. The question is why clisp acts differently from touch. These are all done from the same login and same environment. If you've found that you could use the process umask to configure the default mask used when creating files, then you know what should ask clisp about: (apropos "UMASK" "POSIX") (describe 'posix:umask) which seems to only allow me to set it, not read it, btw (run-shell-command "umask") 0006 just like $ umask 0006 |
From: Pascal J. B. <pj...@in...> - 2015-08-11 16:51:40
|
don...@is... (Don Cohen) writes: >> yet another in my series of inane problems - >> I'm trying to create files that are read/write by group (in linux). >> I've managed to get these things to work as desired: >> >> echo "hi" > /home/cmcadm/data2009/mb3 >> => >> -rw-rw----. 1 marilyn cmcadm 3 Aug 11 10:14 mb3 >> >> touch ~cmcadm/data2009/mb >> => >> -rw-rw----. 1 marilyn cmcadm 0 Aug 10 22:15 mb >> >> and yet in clisp ... >> >> [1]> (with-open-file (s "/home/cmcadm/data2009/mb2" :direction :output)) >> NIL >> => >> -rw-r-----. 1 marilyn cmcadm 0 Aug 11 10:13 mb2 >> >> What am I missing? > > Those are NOT Common Lisp notions. > > File modes, user, group, other, etc are POSIX notions. > So how would you do in C? > As far as I can tell you'd set umask - but that's already done. > The question is why clisp acts differently from touch. > These are all done from the same login and same environment. > > If you've found that you could use the process umask to configure the > default mask used when creating files, then you know what should ask > clisp about: > > (apropos "UMASK" "POSIX") > (describe 'posix:umask) > which seems to only allow me to set it, not read it, btw Read: man 2 umask While one might say that the impnotes is deficient for not precising the result of POSIX:UMASK, (you may post a bug report), it should be obvious what it returns, knowing what umask(2) does. -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk |
From: <don...@is...> - 2015-08-11 19:05:37
|
> which seems to only allow me to set it, not read it, btw Read: man 2 umask While one might say that the impnotes is deficient for not precising the result of POSIX:UMASK, (you may post a bug report), it should be obvious what it returns, knowing what umask(2) does. ok, fine, [1]> (posix:umask nil) 6 showing that the value was 6, then [2]> (posix:umask 6) 0 to put it back. But you're not addressing the real question, which is why does my file creation (only in clisp) not end up with the right permissions? |
From: <don...@is...> - 2015-08-11 19:23:31
|
>> [1]> (with-open-file (s "/home/cmcadm/data2009/mb2" :direction :output)) >> NIL >> => >> -rw-r-----. 1 marilyn cmcadm 0 Aug 11 10:13 mb2 When I run this under strace I see open("/home/cmcadm/data2009/mb2", O_RDWR|O_CREAT|O_TRUNC|O_LARGEFILE, 0644) = 4 It seems that 0644 is the culprit. If it were 0664, for instance, I'd get my rw. When I strace touch I see open("/home/cmcadm/data2009/mb3", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK|O_LARGEFILE, 0666) = 3 So I now suggest that clisp should be using 0666. Any other opinions? |
From: Fred C. <fc...@al...> - 2015-08-11 19:47:09
|
I think clisp should be using the default for the user and system per any other Unix-like system, and the user should be able to have a call to change the default umask on such systems. On 2015-08-11 12:23, Don Cohen wrote: >>> [1]> (with-open-file (s "/home/cmcadm/data2009/mb2" :direction :output)) >>> NIL >>> => >>> -rw-r-----. 1 marilyn cmcadm 0 Aug 11 10:13 mb2 > When I run this under strace I see > open("/home/cmcadm/data2009/mb2", O_RDWR|O_CREAT|O_TRUNC|O_LARGEFILE, 0644) = 4 > > It seems that 0644 is the culprit. > If it were 0664, for instance, I'd get my rw. > > When I strace touch I see > open("/home/cmcadm/data2009/mb3", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK|O_LARGEFILE, 0666) = 3 > > So I now suggest that clisp should be using 0666. > > Any other opinions? > > ------------------------------------------------------------------------------ > _______________________________________________ > clisp-list mailing list > cli...@li... > https://lists.sourceforge.net/lists/listinfo/clisp-list -- -This is confidential to the parties I intend it to serve- Fred Cohen - 925-454-0171 - All.Net & Affiliated Companies http://all.net/ PO Box 811 Pebble Beach, CA 93953 |
From: Pascal J. B. <pj...@in...> - 2015-08-11 23:26:45
|
don...@is... (Don Cohen) writes: >>> [1]> (with-open-file (s "/home/cmcadm/data2009/mb2" :direction :output)) >>> NIL >>> => >>> -rw-r-----. 1 marilyn cmcadm 0 Aug 11 10:13 mb2 > > When I run this under strace I see > open("/home/cmcadm/data2009/mb2", O_RDWR|O_CREAT|O_TRUNC|O_LARGEFILE, 0644) = 4 > > It seems that 0644 is the culprit. > If it were 0664, for instance, I'd get my rw. > > When I strace touch I see > open("/home/cmcadm/data2009/mb3", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK|O_LARGEFILE, 0666) = 3 > > So I now suggest that clisp should be using 0666. Definitely. This should be a bug to report. -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk |
From: <don...@is...> - 2015-08-12 11:40:25
|
> So I now suggest that clisp should be using 0666. Definitely. This should be a bug to report. What's the current method for reporting bugs? http://www.clisp.org/impnotes/faq.html#faq-bugs is not sufficiently informative on this topic. http://sourceforge.net/p/clisp/bugs/ looks good but I don't see how to add new reports. |
From: Pascal J. B. <pj...@in...> - 2015-08-12 13:15:17
|
don...@is... (Don Cohen) writes: > > So I now suggest that clisp should be using 0666. > Definitely. This should be a bug to report. > > What's the current method for reporting bugs? > http://www.clisp.org/impnotes/faq.html#faq-bugs is not sufficiently > informative on this topic. > http://sourceforge.net/p/clisp/bugs/ looks good but I don't see how > to add new reports. You need to have an account on sourceforge.net and be logged in. Then on https://sourceforge.net/p/clisp/bugs/ you have on the left a button (⊕ Create Ticked). -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk |