Afshin Salek wrote:
I can't really explain the changes that happen to the file's
ACL using vi over NFS. I'm CC'ing zfs-discuss maybe someone
there can help out.
Afshin
This is caused by vim trying to preserve ACLs and the NFSv3 server
making some bad assumptions.
What is happening is that vim tries to find out what if any POSIX draft
ACLs exist on the file. POSIX draft ACLs aren't supported by ZFS and
the file system returns ENOSYS. The NFS server sees this error and is
afraid that returning that error will cause problems for the client so
it fabricates an ACL based on the mode bits of the file. This causes
"vim" to see an ACL that equates to a mode of 000. Then after writing
the data "vim" restores an ACL that equates to the mode. The NFS server
actually translates the POSIX draft ACL into a NFSv4 ACL and that is the
ACL you actual see on the file after the exiting "vim".
Here is the snipit of code from NFS that actually causes the problem
http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/fs/nfs/nfs_acl_srv.c#98
The assumption made in the comment really aren't accurate anymore.
Solaris can generally deal with an error from VOP_GETSECATTR() now and
probably predates ZFS being integrated into ON.
There are a couple of ways to work around the problem.
- Recompile "vim" without ACL support.
- Use NFSv4 instead of NFSv3
This really should be a bug that needs to be investigated by the NFS
team to determine if/when they really need to fabricate an ACL. I would
guess they probably don't need to do that anymore.
-Mark
John Keiffer wrote:
Looks like this:
n...@leo-ha2:/$ ls -Vd ha2/f1/
drwxr-xr-x+ 3 enguser root 4 Jul 1 14:51 ha2/f1/
user:smb:rwxp-D-ARW-Co-:-------:allow
user:nfs:rwxp-D-ARW-Co-:-------:allow
owner@:--------------:-------:deny
owner@:rwxp---A-W-Co-:-------:allow
group@:-w-p----------:-------:deny
group@:r-x-----------:-------:allow
everyone@:-w-p---A-W-Co-:-------:deny
everyone@:r-x---a-R-c--s:-------:allow
Thanks,
John
-----Original Message-----
From: afshin.ardak...@sun.com [mailto:afshin.ardak...@sun.com] Sent:
Wednesday, July 01, 2009 6:17 PM
To: John Keiffer
Cc: cifs-disc...@opensolaris.org
Subject: Re: [cifs-discuss] [nfs-discuss] Why can't we write to files
created in multi-protocol se
How does the ACL for 'f1' look like?
Afshin
John Keiffer wrote:
Well... I may have had an idamp problem before, which I believe I've
now corrected. This is my current idamp config:
add "wingroup:Domain us...@matrix.lab" unixgroup:group2
add winuser:engu...@matrix.lab unixuser:enguser
wingroup:Domain adm...@matrix.lab == gid:2147483650
wingroup:Authenticated Users == gid:2147483651
wingroup:Network == gid:2147483652
wingroup:administrat...@builtin == gid:2147483653
I still have some questions regarding access from both CIFS and NFS:
After steping on the file from Linux and vi with the ! I believe it
reordered the ACL's like this:
n...@leo-ha2:/$ ls -V ha2/f1/
total 2
----------+ 1 enguser group2 6 Jul 1 14:32 cifs.txt
group:group2:rwxp----------:-------:deny
everyone@:r-x--------Co-:-------:deny
group:group2:-------------s:-------:allow
user:enguser:rwxpdDaARWcCos:fd-----:allow
everyone@:------a-R-c--s:-------:allow
Which means that when I try and access it from Windows I can't,
because group2 has write deny (among other things). If I remove the
user ACL and insert it at the beginning, I can write again from
Windows...
n...@leo-ha2:/$ chmod A3- ha2/f1/cifs.txt
n...@leo-ha2:/$ chmod A0+user:enguser:rwxpdDaARWcCos:fd-----:allow
ha2/f1/cifs.txt
n...@leo-ha2:/$ ls -V ha2/f1/
total 2
----------+ 1 enguser group2 6 Jul 1 14:32 cifs.txt
user:enguser:rwxpdDaARWcCos:fd-----:allow
group:group2:rwxp----------:-------:deny
everyone@:r-x--------Co-:-------:deny
group:group2:-------------s:-------:allow
everyone@:------a-R-c--s:-------:allow
Until I ! save it again from Linux, because then the ACLs are changed
(such that nobody can do much of anything because of the deny lines):
n...@leo-ha2:/$ ls -V ha2/f1/cifs.txt
---------- 1 enguser group2 27 Jul 1 14:48 ha2/f1/cifs.txt
owner@:rwxp----------:-------:deny
owner@:-------A-W-Co-:-------:allow
group@:rwxp----------:-------:deny
group@:--------------:-------:allow
everyone@:rwxp---A-W-Co-:-------:deny
everyone@:------a-R-c--s:-------:allow
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss