linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "J. Bruce Fields" <bfields@fieldses.org>
To: simo <idra@samba.org>
Cc: Pavel Shilovsky <piastry@etersoft.ru>,
	linux-cifs@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-fsdevel@vger.kernel.org, wine-devel@winehq.org,
	linux-nfs@vger.kernel.org
Subject: Re: [PATCH 0/3] Add O_DENY* flags to fcntl and cifs
Date: Fri, 7 Dec 2012 11:09:49 -0500	[thread overview]
Message-ID: <20121207160949.GJ17115@fieldses.org> (raw)
In-Reply-To: <1354894665.14719.87.camel@pico.ipa.ssimo.org>

On Fri, Dec 07, 2012 at 10:37:45AM -0500, simo wrote:
> On Fri, 2012-12-07 at 09:52 -0500, J. Bruce Fields wrote:
> > On Fri, Dec 07, 2012 at 01:08:46PM +0400, Pavel Shilovsky wrote:
> > > 2012/12/6 Pavel Shilovsky <piastry@etersoft.ru>:
> > > > Network filesystems CIFS, SMB2.0, SMB3.0 and NFSv4 have such flags - this change can benefit cifs and nfs modules. While this change is ok for network filesystems, itsn't not targeted for local filesystems due security problems (e.g. when a user process can deny root to delete a file).
> > > >
> > > > Share flags are used by Windows applications and WINE have to deal with them too. While WINE can process open share flags itself on local filesystems, it can't do it if a file stored on a network share and is used by several clients. This patchset makes it possible for CIFS/SMB2.0/SMB3.0.
> > > >
> > > > Pavel Shilovsky (3):
> > > >   fcntl: Introduce new O_DENY* open flags for network filesystems
> > > >   CIFS: Add O_DENY* open flags support
> > > >   CIFS: Use NT_CREATE_ANDX command for forcemand mounts
> > > >
> > > >  fs/cifs/cifsacl.c                |   10 ++++----
> > > >  fs/cifs/cifsglob.h               |   11 ++++++++-
> > > >  fs/cifs/cifsproto.h              |    9 ++++----
> > > >  fs/cifs/cifssmb.c                |   47 ++++++++++++++++++++------------------
> > > >  fs/cifs/dir.c                    |   14 ++++++++----
> > > >  fs/cifs/file.c                   |   18 ++++++++++-----
> > > >  fs/cifs/inode.c                  |   11 +++++----
> > > >  fs/cifs/link.c                   |   10 ++++----
> > > >  fs/cifs/readdir.c                |    2 +-
> > > >  fs/cifs/smb1ops.c                |   15 ++++++------
> > > >  fs/cifs/smb2file.c               |   10 ++++----
> > > >  fs/cifs/smb2inode.c              |    4 ++--
> > > >  fs/cifs/smb2ops.c                |   10 ++++----
> > > >  fs/cifs/smb2pdu.c                |    6 ++---
> > > >  fs/cifs/smb2proto.h              |   14 +++++++-----
> > > >  fs/fcntl.c                       |    5 ++--
> > > >  include/uapi/asm-generic/fcntl.h |   11 +++++++++
> > > >  17 files changed, 125 insertions(+), 82 deletions(-)
> > > >
> > > > --
> > > > 1.7.10.4
> > > >
> > > 
> > > First of all, sorry for being unclear at this proposal.
> > > 
> > > 
> > > I am not from Wine team but I am working on things related to
> > > Wine+CIFS-client+Samba.
> > > 
> > > We (at Etersoft) need to organize the work of Wine applications
> > > through cifs-client share mounted to Samba (or Windows server). They
> > > are related to accounting (mostly Russian ones - e.g.
> > > http://www.1c.ru/eng/title.htm). So, the problem is that such
> > > applications use share flags to control the parallel access to the
> > > same files of several clients on a remote share. Also, there can be a
> > > situation where Windows (native) clients and Wine clients are working
> > > together in the same time.
> > > 
> > > That's why we need such flags in the kernel (patch #1). With these
> > > flags Wine can pass them to every open and they will be used by CIFS
> > > (and probably NFS) file systems to pass to the Samba server. In the
> > > same time if the file is on local filesystem - these flags will be
> > > simply ignored (not implemented).
> > 
> > NFS supports the deny-read and deny-write bits but not deny-delete.
> > 
> > If we could do such opens in-kernel on local and clustered filesystems,
> > that could also be useful for multi-protocol (Samba and NFS) and
> > clustered exports.
> > 
> > Currently knfsd tries to enforce deny bits in the nfsd code, which is a
> > bit ugly.
> > 
> > And knfsd currently requires write permissions for deny-read.  My
> > understanding is that Windows considers that wrong, but I'd be curious
> > to know whether that breaks Windows applications in practice.
> 
> It probably does if you look hard enough.
> IIRC Deny-reads are very loosely like read locks, and you can take read
> locks if you have read-only access.

I had the impression they didn't care about read or write permissions at
all, but I don't know.

> Why does knfsd restrict deny-read to read-write access ?

Because I think it's normal to want files that everyone's able to read
without giving everyone the right to DOS readers indefinitely.

And because I'm having a hard time thinking why you'd care to keep
everyone from reading a file that you don't intend to modify.

--b.

  reply	other threads:[~2012-12-07 16:09 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-06 18:26 [PATCH 0/3] Add O_DENY* flags to fcntl and cifs Pavel Shilovsky
2012-12-06 18:26 ` [PATCH 2/3] CIFS: Add O_DENY* open flags support Pavel Shilovsky
2012-12-06 18:26 ` [PATCH 3/3] CIFS: Use NT_CREATE_ANDX command for forcemand mounts Pavel Shilovsky
     [not found] ` <1354818391-7968-1-git-send-email-piastry-7qunaywFIewox3rIn2DAYQ@public.gmane.org>
2012-12-06 18:26   ` [PATCH 1/3] fcntl: Introduce new O_DENY* open flags for network filesystems Pavel Shilovsky
2012-12-06 19:49   ` [PATCH 0/3] Add O_DENY* flags to fcntl and cifs Alan Cox
2012-12-06 19:57     ` Jeremy Allison
2012-12-06 20:13       ` Jeremy Allison
2012-12-06 21:31       ` Theodore Ts'o
     [not found]         ` <20121206213133.GB4821-AKGzg7BKzIDYtjvyW6yDsg@public.gmane.org>
2012-12-06 21:33           ` Jeremy Allison
2012-12-06 21:37             ` Theodore Ts'o
     [not found]               ` <20121206213727.GC4821-AKGzg7BKzIDYtjvyW6yDsg@public.gmane.org>
2012-12-06 21:39                 ` Jeremy Allison
2012-12-07 14:29       ` Steve French
     [not found]         ` <CAH2r5msoPiu7wz-HjnnqTxeBLVEQiMYSnLMaZ+dEr11j6Fo4Ew-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-12-07 14:30           ` Steve French
2012-12-07 16:34           ` Alan Cox
2012-12-07  9:08   ` Pavel Shilovsky
     [not found]     ` <CAKywueQ3d=wdq2nw5f-QS-D9PY70Axa3Cn0gi5GRk4Xso+iquA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-12-07 14:52       ` J. Bruce Fields
     [not found]         ` <20121207145206.GF17115-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2012-12-07 15:37           ` simo
2012-12-07 16:09             ` J. Bruce Fields [this message]
2012-12-07 16:16   ` Christoph Hellwig
     [not found]     ` <20121207161602.GA17710-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2012-12-07 20:43       ` Pavel Shilovsky
     [not found]         ` <495d17310e0a687d446afc86def0f058-Gr3b2bv8/haq3CaADJ+gRi8mxiWnj2XH@public.gmane.org>
2012-12-07 21:35           ` Alan Cox
2012-12-10 16:41           ` J. Bruce Fields
     [not found]             ` <20121210164116.GC13327-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2012-12-11 13:11               ` Jeff Layton
2012-12-07 23:55         ` Myklebust, Trond
2012-12-12  8:34         ` David Laight
     [not found]           ` <20121212083401.GW5010-y8aDsudeyGZKtrsfIrZdgrVCufUGDwFn@public.gmane.org>
2012-12-14 14:12             ` Pavel Shilovsky
     [not found]               ` <CAKywueSN++ZCNJ1zbET_axuwXd2ZujvSof9H82E3AdeZWY_BgQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-12-14 15:30                 ` Alan Cox
     [not found]                   ` <20121214153000.62af6cbc-38n7/U1jhRXW96NNrWNlrekiAK3p4hvP@public.gmane.org>
2012-12-14 19:19                     ` Steve French
     [not found]                       ` <CAH2r5muRyB2529EcQXFysrSDpMKe0m3JfiEc5929O6oTmG-ThQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-12-17 15:36                         ` J. Bruce Fields
  -- strict thread matches above, loose matches on Subject: below --
2012-11-21 14:25 Pavel Shilovsky
     [not found] ` <1353507930-10908-1-git-send-email-piastry-7qunaywFIewox3rIn2DAYQ@public.gmane.org>
2012-11-21 14:47   ` Pavel Shilovsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20121207160949.GJ17115@fieldses.org \
    --to=bfields@fieldses.org \
    --cc=idra@samba.org \
    --cc=linux-cifs@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=piastry@etersoft.ru \
    --cc=wine-devel@winehq.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).