X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: sourceware.org Message-ID: <4A9580FE.9080901@t-online.de> Date: Wed, 26 Aug 2009 20:37:50 +0200 From: Christian Franke User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.21) Gecko/20090403 SeaMonkey/1.1.16 MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Inconsistent setting of readonly attribute in 1.7 ? Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com If ACLs are used, Cygwin 1.7 chmod() does never set R/O attribute, but open() sets it if a R/O file is created: $ touch test1 $ chmod a=r test1 $ cp -p test1 test2 $ ls -l test1 test2 -r--r--r-- 1 franke users 0 Aug 26 19:33 test1 -r--r--r-- 1 franke users 0 Aug 26 19:33 test2 $ attrib 'test?' A C:\cygwin\tmp\test1 A R C:\cygwin\tmp\test2 The chmod() behavior is intentional: fhandler_disk_file::fchmod (mode_t mode) ... if (mode & (S_IWUSR | S_IWGRP | S_IWOTH)) pc &= (DWORD) ~FILE_ATTRIBUTE_READONLY; else if (!pc.has_acls ()) /* Never set DOS R/O if security is used. */ pc |= (DWORD) FILE_ATTRIBUTE_READONLY; This change might be enough (or not): fhandler_base::open (int flags, mode_t mode) ... -if (!(mode & (S_IWUSR | S_IWGRP | S_IWOTH))) +if (!pc.has_acls () && !(mode & (S_IWUSR | S_IWGRP | S_IWOTH))) file_attributes |= FILE_ATTRIBUTE_READONLY; -- Regards, Christian Franke -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple