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>