bug-cssc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug-cssc] [bug #36269] "sccs create" loses execute permissions


From: James Youngman
Subject: [Bug-cssc] [bug #36269] "sccs create" loses execute permissions
Date: Sun, 20 Jul 2014 22:59:58 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36

Update of bug #36269 (project cssc):

             Assigned to:                    None => jay                    

    _______________________________________________________

Follow-up Comment #2:

I'm inclined to implement the feature, but closely following the behaviour of
Solaris 10 in particular (I didn't check other versions) may not be the best
approach, since that implementation somewhat violates the principle of least
astonishment: 

When reading the input file (named via admin -i, for example) only the owner's
execute permission bit is significant.   The setting of this bit is copied
however to *all three* of the execute bits in the history file [note 1] if the
input , and in turn that is copied to the mode bits of the subsequent gotten
file.

The result is that you take a file executable by owner only, check it into
SCCS, check it out again, and suddenly it's world-executable (depending on
your umask).


[note 1]: I assume this happens because the history file and the gotten file
are created with mode 0666 (if the original file was not owner-executable) or
mode 0777 (if the original file was not owner-executable).


 ( for mask in 0111 0011 0001 0000; do umask $mask; echo; echo umask=$mask; rm
-f 
s.x; touch x; chmod 0750 x; echo Original mode:; ls -ld x; admin -i s.x < x
2>/dev/null  ; echo Mode of resulting history file:; ls -l s.x; rm -f x; get
s.x >/dev/null 2>&1; echo Mode of gotten file:; ls -l x; rm -f x s.x; done ) 

umask=0111
Original mode:
-rwxr-x---   1 jay      csw            0 Jul 21 00:48 x
Mode of resulting history file:
-r--r--r--   1 jay      csw          146 Jul 21 00:48 s.x
Mode of gotten file:
-r--r--r--   1 jay      csw            0 Jul 21 00:48 x

umask=0011
Original mode:
-rwxr-x---   1 jay      csw            0 Jul 21 00:48 x
Mode of resulting history file:
-r-xr--r--   1 jay      csw          146 Jul 21 00:48 s.x
Mode of gotten file:
-r-xr--r--   1 jay      csw            0 Jul 21 00:48 x

umask=0001
Original mode:
-rwxr-x---   1 jay      csw            0 Jul 21 00:48 x
Mode of resulting history file:
-r-xr-xr--   1 jay      csw          146 Jul 21 00:48 s.x
Mode of gotten file:
-r-xr-xr--   1 jay      csw            0 Jul 21 00:48 x

umask=0000
Original mode:
-rwxr-x---   1 jay      csw            0 Jul 21 00:48 x
Mode of resulting history file:
-r-xr-xr-x   1 jay      csw          146 Jul 21 00:48 s.x
Mode of gotten file:
-r-xr-xr-x   1 jay      csw            0 Jul 21 00:48 x



If the original file is not owner-executable, the history file (and this
subsequent gotten files) are not executable at all:

( for mask in 0111 0011 0001 0000; do umask $mask; echo; echo umask=$mask; rm
-f 
s.x; touch x; chmod 0651 x; echo Original mode:; ls -ld x; admin -i s.x < x
2>/dev/null  ; echo Mode of resulting history file:; ls -l s.x; rm -f x; get
s.x >/dev/null 2>&1; echo Mode of gotten file:; ls -l x; rm -f x s.x; done ) 

umask=0111
Original mode:
-rw-r-x--x   1 jay      csw            0 Jul 21 00:57 x
Mode of resulting history file:
-r--r--r--   1 jay      csw          146 Jul 21 00:57 s.x
Mode of gotten file:
-r--r--r--   1 jay      csw            0 Jul 21 00:57 x

umask=0011
Original mode:
-rw-r-x--x   1 jay      csw            0 Jul 21 00:57 x
Mode of resulting history file:
-r--r--r--   1 jay      csw          146 Jul 21 00:57 s.x
Mode of gotten file:
-r--r--r--   1 jay      csw            0 Jul 21 00:57 x

umask=0001
Original mode:
-rw-r-x--x   1 jay      csw            0 Jul 21 00:57 x
Mode of resulting history file:
-r--r--r--   1 jay      csw          146 Jul 21 00:57 s.x
Mode of gotten file:
-r--r--r--   1 jay      csw            0 Jul 21 00:57 x

umask=0000
Original mode:
-rw-r-x--x   1 jay      csw            0 Jul 21 00:57 x
Mode of resulting history file:
-r--r--r--   1 jay      csw          146 Jul 21 00:57 s.x
Mode of gotten file:
-r--r--r--   1 jay      csw            0 Jul 21 00:57 x





    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?36269>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]