This is the mail archive of the cygwin-apps mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[BUG 1.7] Read-only files are not.


It seems that read-only files in Cygwin 1.7 are not truly
read-only. The sequence of steps below shows that "chmod 444 file1"
does not make the file read-only in Cygwin 1.7, while it does in
Cygwin 1.5. It may have something to do with the Read Only DOS
attribute. This is set by Cygwin 1.5 but not by Cygwin 1.7. If I
manually set it for Cygwin 1.7, the file does become read-only.

(This issue was brought to my attention by a failing subversion test
after building for 1.7.)

----------------------------------------------------------------------
[1.7] % mkdir /tmp/ro-test
[1.7] % cd /tmp/ro-test
[1.7] % ls -ld
drwxr-xr-x+ 1 drothe None 0 Dec 31 15:18 .
[1.7] % touch file1
[1.7] % ls -l
total 0
-rw-r--r-- 1 drothe None 0 Dec 31 15:18 file1
[1.7] % chmod 444 file1
[1.7] % ls -l
total 0
-r--r--r-- 1 drothe None 0 Dec 31 15:18 file1
[1.7] % test -w file1 && echo yes
yes
[1.7] % echo foo > file1
[1.7] % cat file1
foo
[1.7] % attrib file1
A          C:\cygwin-1.7\tmp\ro-test\file1
[1.7] % attrib +r file1
[1.7] % test -w file1 && echo yes
[1.7] % echo bar > file1
bash: file1: Permission denied
[1.7] % cat file1
foo
----------------------------------------------------------------------

Here is the same sequence of steps using Cygwin 1.5.

----------------------------------------------------------------------
[1.5] % mkdir /tmp/ro-test
[1.5] % cd /tmp/ro-test
[1.5] % ls -ld
drwxr-xr-x+ 2 drothe None 0 Dec 31 15:21 .
[1.5] % touch file1
[1.5] % ls -l
total 0
-rw-r--r-- 1 drothe None 0 Dec 31 15:21 file1
[1.5] % chmod 444 file1
[1.5] % ls -l
total 0
-r--r--r-- 1 drothe None 0 Dec 31 15:21 file1
[1.5] % test -w file1 && echo yes
[1.5] % echo foo > file1
bash: file1: Permission denied
[1.5] % cat file1
[1.5] % attrib file1
A    R     C:\cygwin\tmp\ro-test\file1
[1.5] % attrib -r file1
[1.5] % attrib file1
A          C:\cygwin\tmp\ro-test\file1
[1.5] % ls -l
total 0
-r--r--r-- 1 drothe None 0 Dec 31 15:21 file1
[1.5] % test -w file1 && echo yes
yes
[1.5] % echo foo > file1
bash: file1: Permission denied
[1.5] % cat file1

----------------------------------------------------------------------

--
David Rothenberger  ----  daveroth@acm.org

Agnes' Law:
        Almost everything in life is easier to get into than out of.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]