Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 1 Apr 2017 13:41:47 -0500
From:      Lewis Donzis <lew@perftech.com>
To:        Bruce Evans <brde@optusnet.com.au>
Cc:        Eitan Adler <lists@eitanadler.com>, FreeBSD Standards <freebsd-standards@freebsd.org>, freebsd-bugs@freebsd.org
Subject:   Re: Fix cp not to give chflags error on NFS
Message-ID:  <E8752EE0-1DEA-4324-8EBF-90903C635BB5@perftech.com>
In-Reply-To: <20170402032137.J13168@besplex.bde.org>
References:  <8FDBAA2C-93B8-49FA-B3CD-5B709A93A5C4@perftech.com> <CAF6rxgkG_SuuVH2HNc6Wd9v7XCQPfAxhfUZk1KQWB_pXyj-KeA@mail.gmail.com> <20170402032137.J13168@besplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help

> On Apr 1, 2017, at 1:16 PM, Bruce Evans <brde@optusnet.com.au> wrote:

Thanks for the detailed explanation.

As I mentioned later, the problem seems to be more lated to the NFSv4 =
server running Linux (FWIW, the underlying filesystem on our Linux NFS =
server is ZFS).

> nfs should support file flags iff the server does.  Unfortunately, =
there
> is no protocol to set them (at least in nfs3).

We switched to NFSv4 in the hopes that it would solve this.  And, in =
fact, it does if the server is running FreeBSD.

But on Linux, not only does the ACL (which we never set) appear to cp =
not to be =E2=80=9Ctrivial=E2=80=9D, but it fails to set.  I=E2=80=99ve =
added some details below, if it=E2=80=99s of any interest.

We were already in the process of switching our NFS servers from Linux =
to FreeBSD anyway, so this will just accelerate the process.

Thanks,
lew

Using a Linux NFSv4 server:

root@fbdev:/shared/lew # mount
******:/shared on /shared (nfs, nfsv4acls)

root@fbdev:/shared/lew # cp -p xx yy
nfsv4 err=3D10032
cp: failed to set acl entries for yy: Operation not permitted

root@fbdev:/shared/lew # ls -l xx yy
-rwxrwxr-x+ 1 root  wheel  4821 Apr 25  2009 xx
-rwxrwxr-x+ 1 root  wheel  4821 Apr 25  2009 yy

root@fbdev:/shared/lew # getfacl -v xx
# file: xx
# owner: root
# group: wheel
            =
owner@:read_data/write_data/execute/append_data/read_attributes/write_attr=
ibutes/read_acl/write_acl/synchronize::allow
            =
group@:read_data/write_data/execute/append_data/read_attributes/read_acl/s=
ynchronize::allow
         =
everyone@:read_data/execute/read_attributes/read_acl/synchronize::allow

Using a FreeBSD NFSv4 server:

root@fbdev:/mnt/lew # mount
******:/shared on /mnt (nfs, nfsv4acls)

root@fbdev:/mnt/lew # cp -p xx yy

root@fbdev:/mnt/lew # ls -l xx yy
-rwxrwxr-x  1 root  wheel  4821 Apr 25  2009 xx
-rwxrwxr-x  1 root  wheel  4821 Apr 25  2009 yy

root@fbdev:/mnt/lew # getfacl -v xx
# file: xx
# owner: root
# group: wheel
            =
owner@:read_data/write_data/execute/append_data/read_attributes/write_attr=
ibutes/read_xattr/write_xattr/read_acl/write_acl/write_owner/synchronize::=
allow
            =
group@:read_data/write_data/execute/append_data/read_attributes/read_xattr=
/read_acl/synchronize::allow
         =
everyone@:read_data/execute/read_attributes/read_xattr/read_acl/synchroniz=
e::allow





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E8752EE0-1DEA-4324-8EBF-90903C635BB5>