This is the mail archive of the cygwin 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]

Re: vim and file permissions on Windows 7


On 7/14/2010 9:44 AM, Cory Riddell wrote:
> My Windows 7 (64-bit) machine is part of a domain and I normally log
> into it as a domain user.
> 
> Something is misconfigured because Cygwin programs seem to have a
> problem with file permissions. For example:
>   $ ls -l visitor*
>   ----------+ 1 cory Domain Users 3236 2010-07-11 22:37 visitor.cpp
>   ----------+ 1 cory Domain Users 2260 2010-07-14 09:16 visitor.h
> 
> If I open visitor.cpp with Cygwin vim, it tells me it is read-only. I
> can force a save though with w!. If I open this same file with notepad
> or my Windows version of gvim, I can edit and save the file and am never
> told it is read-only.
> 
> I've been researching quite a bit and I recreated my /etc/passwd and
> group files with the -d switch. I thought it had something to do with
> the domain, but now I don't think that's the case. I'm starting to think
> it might be the filesystem or perhaps how it is mounted. The mount
> command reports:
> $ mount
>   C:/cygwin/bin on /usr/bin type ntfs (binary,auto)
>   C:/cygwin/lib on /usr/lib type ntfs (binary,auto)
>   C:/cygwin on / type ntfs (binary,auto)
>   C: on /cygdrive/c type ntfs (binary,posix=0,user,noumount,auto)
>   Y: on /cygdrive/y type ntfs (binary,posix=0,user,noumount,auto)

By default, Cygwin attempts to emulate POSIX permission settings for
files and directories using specially contrived ACLs.  The files in
question appear to have been created using a Windows-native program
which set the ACLs such that Cygwin computes the POSIX permissions as
denying all operations to all people.  You are still the owner, however,
so you are able to override the permission and force vim to write to the
files.

Read about the noacl mount option here:

http://cygwin.com/cygwin-ug-net/using.html#using-pathnames

Using that option for the mounts which contain problematic files may
correct things for you.

> Drive Y is a mapping to a network location. Interestingly, ls -l
> /cygdrive returns:
>   d---------+ 1 ????????       ????????     24576 2010-07-09 11:18 c
>   drwx------+ 1 Administrators Domain Users     0 2010-07-14 06:58 y
> 
> The c folder looks weird, the y folder looks correct.

Try ls -ln /cygdrive.  The user and group ownerships on the root of the
C: drive are most likely not found in your passwd and group files.  The
-n option for ls will print the user and group IDs rather than try to
look up their names.  Unfortunately, I can't think of any way offhand to
generate the passwd and group entries given only user and group IDs.
Maybe someone else can comment on that.

-Jeremy

--
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


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