Re: [PATCH v2 0/7] Allow to choose symlink and socket type
From: Pali Rohár
Date: Mon Oct 14 2024 - 05:32:33 EST
Now I found this statement in FSCTL_SET_REPARSE_POINT documentation:
https://learn.microsoft.com/en-us/windows/win32/api/winioctl/ni-winioctl-fsctl_set_reparse_point
"FSCTL_SET_REPARSE_POINT IOCTL - Sets a reparse point on a file or directory."
"The calling process must have the SE_CREATE_SYMBOLIC_LINK_NAME privilege."
On Sunday 13 October 2024 15:38:27 Pali Rohár wrote:
> Anyway, I think that the create symlink privilege is needed to create
> any reparse point, so fallback to NFS reparse point would not help.
>
> On Saturday 12 October 2024 23:18:13 Steve French wrote:
> > after doing more experiments with native windows symlinks (and how
> > difficult it is to get permission to set them over the wire to Windows),
> > was wondering if we should allow fall back strategy if creating windows
> > style symlinks fails with STATUS_PRIVILEGE_NOT_HELD then we should try NFS
> > reparse point symlink. Any opinions?
> >
> > On Sat, Oct 12, 2024 at 3:53 AM Pali Rohár <pali@xxxxxxxxxx> wrote:
> >
> > > This patch series improves choosing reparse format when creating new
> > > special files.
> > >
> > > Changes since v1:
> > > * Instead of new -o reparse= mount option is now a new -o symlink= mount
> > > option for choosing symlink type during creation, and new option
> > > -o nonativesocket for choosing socket type
> > >
> > > Pali Rohár (7):
> > > cifs: Add mount option -o symlink= for choosing symlink create type
> > > cifs: Add mount option -o reparse=none
> > > cifs: Add support for creating native Windows sockets
> > > cifs: Add support for creating NFS-style symlinks
> > > cifs: Improve guard for excluding $LXDEV xattr
> > > cifs: Add support for creating WSL-style symlinks
> > > cifs: Validate content of WSL reparse point buffers
> > >
> > > fs/smb/client/cifsfs.c | 4 +
> > > fs/smb/client/cifsglob.h | 36 +++++++
> > > fs/smb/client/connect.c | 4 +
> > > fs/smb/client/fs_context.c | 82 +++++++++++++++
> > > fs/smb/client/fs_context.h | 19 ++++
> > > fs/smb/client/link.c | 60 ++++++++---
> > > fs/smb/client/reparse.c | 201 +++++++++++++++++++++++++++++++------
> > > fs/smb/client/reparse.h | 2 +
> > > 8 files changed, 364 insertions(+), 44 deletions(-)
> > >
> > > --
> > > 2.20.1
> > >
> > >
> > >
> >
> > --
> > Thanks,
> >
> > Steve