Mail Archives: cygwin/2010/01/07/00:39:56
On 01/06/2010 10:01 PM, Larry Hall (Cygwin) wrote:
> On 01/06/2010 09:22 PM, Raman Gupta wrote:
>> I have an smbfs mount (served by samba 3.4.2) in noacl mode on cygwin
>> 1.7.1-1:
>>
>> //smserver/smshare on /mnt/shar type smbfs (binary,notexec,noacl,user)
>>
>> Here is the directory as seen on the unix server directly:
>>
>> root AT smserver foo]# ls -ald bar
>> dr-xr-sr-x. 2 root agroup 4096 2007-04-21 23:23 bar
>>
>> As you can see, the directory bar is not writable.
>>
>> However, here is what cygwin in noacl mode sees:
>>
>> Raman Gupta AT client /mnt/shar/foo
>> $ ls -ald bar
>> drwxr-xr-x 1 Raman Gupta None 0 2007-04-21 23:23 bar
>>
>> The mode shown is 755 rather than 555, and indeed cygwin does not have
>> write access to this directory:
>>
>> Raman Gupta AT client /mnt/shar/foo/bar
>> $ touch baz
>> touch: cannot touch `baz': Permission denied
>>
>> Shouldn't cygwin therefore read the permissions as 555?
>>
>> In acl mode, cygwin does correctly show these directory permissions as
>> 555.
>>
>> Note that read-only *files* are correctly displayed by cygwin/noacl as
>> 444.
>
> Well, you've told Cygwin that it shouldn't consult the file system
> for permissions. So you see is what Cygwin defaults to in these
> situations. If you ask Cygwin to tell you the permissions on
> something in a file system where you also told it not to check the
> permissions, you don't expect to see the actual correct
> permissions, do you?
Well... yes -- at least in this case. As per the documentation
(http://www.cygwin.com/cygwin-ug-net/using.html#mount-table):
"Cygwin ignores filesystem ACLs and only fakes a subset of permission
bits based on the DOS readonly attribute"
On the server:
root AT smserver foo]# ls -ald bar baz
dr-xr-sr-x. 2 root agroup 4096 2007-04-21 23:23 bar
drwxrwsr-x. 2 root agroup 4096 2007-04-21 23:23 baz
Since the default behavior of Samba is to map the DOS read-only flag
as per the write bits
(http://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html#MAPREADONLY),
the write bits carry over to the DOS readonly attribute on the share.
This can be verified via the DOS attrib command on the client:
Raman Gupta AT client /mnt/shar/foo
$ attrib bar
R \\smserver\smshare\foo\bar
Raman Gupta AT client /mnt/shar/foo
$ attrib baz
\\smserver\smshare\foo\baz
and yet, Cygwin reports owner write bit set in both cases:
Raman Gupta AT client /mnt/shar/foo
$ ls -ald bar baz
drwxr-xr-x 1 Raman Gupta None 0 2007-04-21 23:23 bar
drwxr-xr-x 1 Raman Gupta None 0 2007-04-21 23:23 baz
Therefore, it appears that cygwin is following its own documentation
for files but not for directories.
Cheers,
Raman
--
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
- Raw text -