* Re: [Samba] SMB3 Unix Extensions - creating special files [not found] ` <a4a32c8e-3b7f-4748-8c50-48f18e8980b9@ed.ac.uk> @ 2025-07-31 16:12 ` Ralph Boehme 2025-07-31 16:18 ` Steve French ` (2 more replies) 0 siblings, 3 replies; 15+ messages in thread From: Ralph Boehme @ 2025-07-31 16:12 UTC (permalink / raw) To: Matthew Richardson; +Cc: samba, CIFS, Steve French [-- Attachment #1.1: Type: text/plain, Size: 1342 bytes --] ...adding linux-cifs and Steve to the loop.... Looks to be a client issue: the client is checking for existence of the targets, the server returns ENOENT and then that's it. There no attempt to create either a symlink nor the fifo as reparse points. @Steve: any idea of what could be going wrong? Iirc this is supposed to be working in the client. -slow On 7/30/25 2:31 PM, Matthew Richardson wrote: > Hi, > > I've created a few network traces which will hopefully help. Each one > contains the initial mount command, followed by a single command. > They're hosted here: > > https://filebin.net/zvdx07i2m3lta129 > > Working: > > samba_stat_symlink.pcap = stat /mnt/sym_a_local > > Not working: > > samba_ln_s.pcap = ln -s /mnt/a.txt /mnt/a.symlink > > samba_mkfifo.pcap = mkfifo /mnt/fifo_new > > Hopefully that will give some idea about what's happening but let me > know if you need any other traces or debug info. > > Thanks, > > Matthew > > > On 29/07/2025 18:22, Ralph Boehme wrote: >> Hi Matthew, >> >> as a starting point: can you send us a network trace of this? >> >> Iirc the mailing list server is not particularily fond of >> attachements, so either put it somewhere to grab it or file a Samba >> bug and attach it there. >> >> Cheers! >> -slow >> > [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 840 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Samba] SMB3 Unix Extensions - creating special files 2025-07-31 16:12 ` [Samba] SMB3 Unix Extensions - creating special files Ralph Boehme @ 2025-07-31 16:18 ` Steve French 2025-07-31 17:37 ` Paulo Alcantara [not found] ` <notmuch-sha1-71ace0e0808cb1155c98f212b8406ee293b20f11> 2 siblings, 0 replies; 15+ messages in thread From: Steve French @ 2025-07-31 16:18 UTC (permalink / raw) To: Ralph Boehme; +Cc: Matthew Richardson, samba, CIFS I will check on this - but looks like the client was running 6.15, so want to check if there were any fixes in current mainline, 6.16 kernel, which could relate to this. On Thu, Jul 31, 2025 at 11:12 AM Ralph Boehme <slow@samba.org> wrote: > > ...adding linux-cifs and Steve to the loop.... > > Looks to be a client issue: the client is checking for existence of the > targets, the server returns ENOENT and then that's it. There no attempt > to create either a symlink nor the fifo as reparse points. > > @Steve: any idea of what could be going wrong? Iirc this is supposed to > be working in the client. > > -slow > > On 7/30/25 2:31 PM, Matthew Richardson wrote: > > Hi, > > > > I've created a few network traces which will hopefully help. Each one > > contains the initial mount command, followed by a single command. > > They're hosted here: > > > > https://filebin.net/zvdx07i2m3lta129 > > > > Working: > > > > samba_stat_symlink.pcap = stat /mnt/sym_a_local > > > > Not working: > > > > samba_ln_s.pcap = ln -s /mnt/a.txt /mnt/a.symlink > > > > samba_mkfifo.pcap = mkfifo /mnt/fifo_new > > > > Hopefully that will give some idea about what's happening but let me > > know if you need any other traces or debug info. > > > > Thanks, > > > > Matthew > > > > > > On 29/07/2025 18:22, Ralph Boehme wrote: > >> Hi Matthew, > >> > >> as a starting point: can you send us a network trace of this? > >> > >> Iirc the mailing list server is not particularily fond of > >> attachements, so either put it somewhere to grab it or file a Samba > >> bug and attach it there. > >> > >> Cheers! > >> -slow > >> > > > -- Thanks, Steve ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Samba] SMB3 Unix Extensions - creating special files 2025-07-31 16:12 ` [Samba] SMB3 Unix Extensions - creating special files Ralph Boehme 2025-07-31 16:18 ` Steve French @ 2025-07-31 17:37 ` Paulo Alcantara 2025-07-31 18:03 ` Matthew Richardson 2025-07-31 19:20 ` Ralph Boehme [not found] ` <notmuch-sha1-71ace0e0808cb1155c98f212b8406ee293b20f11> 2 siblings, 2 replies; 15+ messages in thread From: Paulo Alcantara @ 2025-07-31 17:37 UTC (permalink / raw) To: Ralph Boehme, Matthew Richardson; +Cc: samba, CIFS, Steve French Ralph Boehme <slow@samba.org> writes: > ...adding linux-cifs and Steve to the loop.... > > Looks to be a client issue: the client is checking for existence of the > targets, the server returns ENOENT and then that's it. There no attempt > to create either a symlink nor the fifo as reparse points. > > @Steve: any idea of what could be going wrong? Iirc this is supposed to > be working in the client. With Linux v6.16 and samba master (f1a828016921): root@fed:~# mount.cifs //192.168.124.1/test /mnt/1 -o username=testuser,password=foo-123,unix root@fed:~# mount -t cifs //192.168.124.1/test on /mnt/1 type cifs (rw,relatime,vers=3.1.1,cache=strict,upcall_target=app,username=testuser,uid=0,noforceuid,gid=0,noforcegid,addr=192.168.124.1,file_mode=0755,dir_mode=0755,soft,posix,posixpaths,serverino,reparse=nfs,nativesocket,symlink=unix,rsize=4194304,wsize=4194304,bsize=1048576,retrans=1,echo_interval=60,actimeo=1,closetimeo=1) root@fed:~# (cd /mnt/1; rm -rf *; mknod chr c 2 1; mknod blk b 3 4; mknod fifo p; ln -s f0 l0; python -c "import socket as s; sock = s.socket(s.AF_UNIX); sock.bind('sock')"; ls -lh) ln: failed to create symbolic link 'l0': Operation not supported total 0 brwxrwxrwx 1 root fsgqa 3, 4 Jul 31 14:31 blk crwxrwxrwx 1 root fsgqa 2, 1 Jul 31 14:31 chr prwxrwxrwx 1 root fsgqa 0 Jul 31 14:31 fifo -rwxrwxrwx 1 root fsgqa 0 Jul 31 14:31 sock I see a regression when attempting to create symlinks and sockets. Note the 'nativesocket' and 'symlink=unix' options, which are definitely wrong for SMB3.1.1 POSIX mounts. It should have 'symlink=native' and 'nonativesocket'. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Samba] SMB3 Unix Extensions - creating special files 2025-07-31 17:37 ` Paulo Alcantara @ 2025-07-31 18:03 ` Matthew Richardson 2025-07-31 18:15 ` Paulo Alcantara 2025-07-31 19:20 ` Ralph Boehme 1 sibling, 1 reply; 15+ messages in thread From: Matthew Richardson @ 2025-07-31 18:03 UTC (permalink / raw) To: Paulo Alcantara, Ralph Boehme; +Cc: samba, CIFS, Steve French [-- Attachment #1.1: Type: text/plain, Size: 2198 bytes --] Thanks for spotting this. I can confirm that I see different behaviour with different kernels: 6.13.0 - mkfifo and ln-s work as expected. 6.14.0 - mkfifo works, ln-s gives 'operation not supported'. >=6.15.7 - both give 'operation not supported'. Which implies possibly more than one regression? Thanks, Matthew On 31/07/2025 18:37, Paulo Alcantara wrote: > [You don't often get email from pc@manguebit.org. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] > > Ralph Boehme <slow@samba.org> writes: > >> ...adding linux-cifs and Steve to the loop.... >> >> Looks to be a client issue: the client is checking for existence of the >> targets, the server returns ENOENT and then that's it. There no attempt >> to create either a symlink nor the fifo as reparse points. >> >> @Steve: any idea of what could be going wrong? Iirc this is supposed to >> be working in the client. > > With Linux v6.16 and samba master (f1a828016921): > > root@fed:~# mount.cifs //192.168.124.1/test /mnt/1 -o username=testuser,password=foo-123,unix > root@fed:~# mount -t cifs > //192.168.124.1/test on /mnt/1 type cifs (rw,relatime,vers=3.1.1,cache=strict,upcall_target=app,username=testuser,uid=0,noforceuid,gid=0,noforcegid,addr=192.168.124.1,file_mode=0755,dir_mode=0755,soft,posix,posixpaths,serverino,reparse=nfs,nativesocket,symlink=unix,rsize=4194304,wsize=4194304,bsize=1048576,retrans=1,echo_interval=60,actimeo=1,closetimeo=1) > root@fed:~# (cd /mnt/1; rm -rf *; mknod chr c 2 1; mknod blk b 3 4; mknod fifo p; ln -s f0 l0; python -c "import socket as s; sock = s.socket(s.AF_UNIX); sock.bind('sock')"; ls -lh) > ln: failed to create symbolic link 'l0': Operation not supported > total 0 > brwxrwxrwx 1 root fsgqa 3, 4 Jul 31 14:31 blk > crwxrwxrwx 1 root fsgqa 2, 1 Jul 31 14:31 chr > prwxrwxrwx 1 root fsgqa 0 Jul 31 14:31 fifo > -rwxrwxrwx 1 root fsgqa 0 Jul 31 14:31 sock > > I see a regression when attempting to create symlinks and sockets. Note > the 'nativesocket' and 'symlink=unix' options, which are definitely > wrong for SMB3.1.1 POSIX mounts. It should have 'symlink=native' and > 'nonativesocket'. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 203 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Samba] SMB3 Unix Extensions - creating special files 2025-07-31 18:03 ` Matthew Richardson @ 2025-07-31 18:15 ` Paulo Alcantara [not found] ` <CAH2r5mt_9GcPqg+v9QLXEroKJ9RQZ1MwtpPgprU+xHOSksiWqw@mail.gmail.com> 0 siblings, 1 reply; 15+ messages in thread From: Paulo Alcantara @ 2025-07-31 18:15 UTC (permalink / raw) To: Matthew Richardson, Ralph Boehme; +Cc: samba, CIFS, Steve French Matthew Richardson <m.richardson@ed.ac.uk> writes: > Thanks for spotting this. I can confirm that I see different behaviour > with different kernels: > > 6.13.0 - mkfifo and ln-s work as expected. > 6.14.0 - mkfifo works, ln-s gives 'operation not supported'. > >=6.15.7 - both give 'operation not supported'. > > Which implies possibly more than one regression? Yes. It used to work on older kernels because the client used to create special files with NFS reparse points by default, which is required for SMB3.1.1 POSIX mounts. 6c06be908ca1 ("cifs: Check if server supports reparse points before using them") then added a check for FILE_SUPPORTS_REPARSE_POINTS, which breaks against samba because it isn't set. IOW, we should skip this check for SMB3.1.1 POSIX mounts. ^ permalink raw reply [flat|nested] 15+ messages in thread
[parent not found: <CAH2r5mt_9GcPqg+v9QLXEroKJ9RQZ1MwtpPgprU+xHOSksiWqw@mail.gmail.com>]
* Re: [Samba] SMB3 Unix Extensions - creating special files [not found] ` <CAH2r5mt_9GcPqg+v9QLXEroKJ9RQZ1MwtpPgprU+xHOSksiWqw@mail.gmail.com> @ 2025-07-31 19:24 ` Matthew Richardson 2025-07-31 20:00 ` Paulo Alcantara 2025-07-31 19:59 ` Paulo Alcantara 1 sibling, 1 reply; 15+ messages in thread From: Matthew Richardson @ 2025-07-31 19:24 UTC (permalink / raw) To: Steve French, Paulo Alcantara; +Cc: Ralph Boehme, Samba Listing, CIFS [-- Attachment #1.1: Type: text/plain, Size: 2509 bytes --] I've just tried the 6.16 kernel from mainline (Linux vm-b 6.16.0-061600-generic #202507272138 SMP PREEMPT_DYNAMIC Sun Jul 27 22:00:36 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux) and while mkfifo works again, ln -s is still giving 'operation not supported'. Thanks, Matthew On 31/07/2025 19:53, Steve French wrote: > > You don't often get email from smfrench@gmail.com. Learn why this is > important <https://aka.ms/LearnAboutSenderIdentification> > > >> FILE_SUPPORTS_REPARSE_POINTS, which breaks against samba because it > isn't set. IOW, we should skip this check for SMB3.1.1 POSIX mounts. > > We did add this patch to 6.16 in mainline > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/ > commit/fs/smb/client?id=8767cb3fbd514c4cf85b4f516ca30388e846f540 > <https://eur02.safelinks.protection.outlook.com/? > url=https%3A%2F%2Fgit.kernel.org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Ftorvalds%2Flinux.git%2Fcommit%2Ffs%2Fsmb%2Fclient%3Fid%3D8767cb3fbd514c4cf85b4f516ca30388e846f540&data=05%7C02%7C%7Cc29b9828335c42fa54f908ddd0638746%7C2e9f06b016694589878910a06934dc61%7C0%7C0%7C638895848082756770%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=hQdSVaqJFPIjiwDPuN%2FlOn%2FSqGlqg8Sts1yH272svtA%3D&reserved=0> > > And it should be backported to some stable kernels by now > Thanks, > > Steve > > On Thu, Jul 31, 2025, 1:15 PM Paulo Alcantara <pc@manguebit.org > <mailto:pc@manguebit.org>> wrote: > > Matthew Richardson <m.richardson@ed.ac.uk > <mailto:m.richardson@ed.ac.uk>> writes: > > > Thanks for spotting this. I can confirm that I see different > behaviour > > with different kernels: > > > > 6.13.0 - mkfifo and ln-s work as expected. > > 6.14.0 - mkfifo works, ln-s gives 'operation not supported'. > > >=6.15.7 - both give 'operation not supported'. > > > > Which implies possibly more than one regression? > > Yes. It used to work on older kernels because the client used to create > special files with NFS reparse points by default, which is required for > SMB3.1.1 POSIX mounts. 6c06be908ca1 ("cifs: Check if server supports > reparse points before using them") then added a check for > FILE_SUPPORTS_REPARSE_POINTS, which breaks against samba because it > isn't set. IOW, we should skip this check for SMB3.1.1 POSIX mounts. > [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 203 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Samba] SMB3 Unix Extensions - creating special files 2025-07-31 19:24 ` Matthew Richardson @ 2025-07-31 20:00 ` Paulo Alcantara 2026-03-02 15:09 ` Matthew Richardson 0 siblings, 1 reply; 15+ messages in thread From: Paulo Alcantara @ 2025-07-31 20:00 UTC (permalink / raw) To: Matthew Richardson, Steve French; +Cc: Ralph Boehme, Samba Listing, CIFS Matthew Richardson <m.richardson@ed.ac.uk> writes: > I've just tried the 6.16 kernel from mainline (Linux vm-b > 6.16.0-061600-generic #202507272138 SMP PREEMPT_DYNAMIC Sun Jul 27 > 22:00:36 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux) and while mkfifo works > again, ln -s is still giving 'operation not supported'. Yes - mainline is still broken. I'll send a fix soon to ML. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Samba] SMB3 Unix Extensions - creating special files 2025-07-31 20:00 ` Paulo Alcantara @ 2026-03-02 15:09 ` Matthew Richardson 2026-03-03 0:41 ` Nikkos Svoboda 0 siblings, 1 reply; 15+ messages in thread From: Matthew Richardson @ 2026-03-02 15:09 UTC (permalink / raw) To: Paulo Alcantara, Steve French; +Cc: Ralph Boehme, Samba Listing, CIFS Hi, Just got back to testing this and wondering if these patches made it into ML? I've tested with 6.17 (Ubuntu Noble standard kernel) and latest 6.19 (mainline) and am seeing odd behaviour where it is creating regular files with 'special' metadata rather than 'real' special files. (This might be a different issue of course!). Reading existing special files (created on 'real' fs) works fine. I'm basically using the same config as in my original post - server is running 4.23.6 with the following config: [global] workgroup = WORKGROUP security = user map to guest = never log level = 3 guest ok = no smb3 unix extensions = yes follow symlinks = yes [myshare] path = /mnt/users browsable = yes writable = yes read only = no valid users = sambauser #uid/gid 1000 create mask = 0777 directory mask = 0777 Client is mounting as: mount -t cifs //server.example.com/myshare /mnt/smb -o posix,vers=3.1.1,username=sambauser,pass=testing123 Reading existing special files created on real fs works fine: > stat test_local stat test_local File: test_local -> test.txt Size: 5 Blocks: 1 IO Block: 16384 symbolic link Device: 0,49 Inode: 1099511631046 Links: 1 I can then do: touch foo ln -s foo foo_link > stat foo_link File: foo_link -> mnt/smb/foo Size: 23 Blocks: 0 IO Block: 16384 symbolic link Device: 0,48 Inode: 1099511629531 Links: 1 However on 'real' filesystem: > stat foo_link File: foo_link Size: 0 Blocks: 0 IO Block: 4194304 regular empty file Device: 3ch/60d Inode: 1099511629531 Links: 1 getfattr -d x_link # file: x_link user.DOSATTRIB=0sAAAFAAUAAAARAAAAIAQAAJmcGa5UqtwB user.SmbReparse=0sDAAAoGgAAAAuAC4AAAAuAAAAAABvAHAAdAAvAGMAZQBwAGgALwBzAGMAcgBhAHQAYwBoAC8AdABlAHMAdAAvAHgAbwBwAHQALwBjAGUAcABoAC8AcwBjAHIAYQB0AGMAaAAvAHQAZQBzAHQALwB4AA== Any suggestions appreciated as to what's going wrong - happy to provide network traces if that's needed. Thanks, Matthew ________________________________________ From: Paulo Alcantara <pc@manguebit.org> Sent: 31 July 2025 21:00 To: Matthew Richardson; Steve French Cc: Ralph Boehme; Samba Listing; CIFS Subject: Re: [Samba] SMB3 Unix Extensions - creating special files Matthew Richardson <m.richardson@ed.ac.uk> writes: > I've just tried the 6.16 kernel from mainline (Linux vm-b > 6.16.0-061600-generic #202507272138 SMP PREEMPT_DYNAMIC Sun Jul 27 > 22:00:36 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux) and while mkfifo works > again, ln -s is still giving 'operation not supported'. Yes - mainline is still broken. I'll send a fix soon to ML. The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336. Is e buidheann carthannais a th’ ann an Oilthigh Dhùn Èideann, clàraichte an Alba, àireamh clàraidh SC005336. ^ permalink raw reply [flat|nested] 15+ messages in thread
* [Samba] SMB3 Unix Extensions - creating special files 2026-03-02 15:09 ` Matthew Richardson @ 2026-03-03 0:41 ` Nikkos Svoboda 2026-03-03 1:13 ` Jeremy Allison 0 siblings, 1 reply; 15+ messages in thread From: Nikkos Svoboda @ 2026-03-03 0:41 UTC (permalink / raw) To: samba, linux-cifs Jumping in here briefly, I believe the "default" symlink style requested by the client mount options is now "symlink=native", which creates the 0-sized files with extended attributes on the server. I'd also like to know: Is it intended to allow creation of "actual" symlinks on a supported server filesystem via unix 3.1.1 Extensions? The mount option "symlink=unix" (which creates "actual" symlinks on the server), when used with SMB 3.1.1 unix extensions, causes symlink creation to fail on the client with "Operation not supported" (client kernel 6.17, ubuntu 24.04). That mount option appears to be referred to as "SMB1 unix create symlink command" which I presume means it is limited to the SMB1 unix extensions. The archived e-mail conversation chain here (though it includes some outdated information) helped me to understand some of what the symlink= and reparse= mount options were intended for: https://lwn.net/ml/all/20241007183650.aw3skuztljpgk2bs@pali/ ---- Nikkos Svoboda On 3/2/26 09:09, Matthew Richardson via samba wrote: > Hi, > > Just got back to testing this and wondering if these patches made it into ML? > > I've tested with 6.17 (Ubuntu Noble standard kernel) and latest 6.19 (mainline) and am seeing odd behaviour where it is creating regular files with 'special' metadata rather than 'real' special files. (This might be a different issue of course!). Reading existing special files (created on 'real' fs) works fine. > > I'm basically using the same config as in my original post - server is running 4.23.6 with the following config: > > [global] > workgroup = WORKGROUP > security = user > map to guest = never > log level = 3 > guest ok = no > smb3 unix extensions = yes > follow symlinks = yes > > > [myshare] > path = /mnt/users > browsable = yes > writable = yes > read only = no > valid users = sambauser #uid/gid 1000 > create mask = 0777 > directory mask = 0777 > > Client is mounting as: > > mount -t cifs //server.example.com/myshare /mnt/smb -o posix,vers=3.1.1,username=sambauser,pass=testing123 > > Reading existing special files created on real fs works fine: > >> stat test_local > > stat test_local > File: test_local -> test.txt > Size: 5 Blocks: 1 IO Block: 16384 symbolic link > Device: 0,49 Inode: 1099511631046 Links: 1 > > I can then do: > > touch foo > ln -s foo foo_link > >> stat foo_link > File: foo_link -> mnt/smb/foo > Size: 23 Blocks: 0 IO Block: 16384 symbolic link > Device: 0,48 Inode: 1099511629531 Links: 1 > > However on 'real' filesystem: >> stat foo_link > File: foo_link > Size: 0 Blocks: 0 IO Block: 4194304 regular empty file > Device: 3ch/60d Inode: 1099511629531 Links: 1 > > getfattr -d x_link > # file: x_link > user.DOSATTRIB=0sAAAFAAUAAAARAAAAIAQAAJmcGa5UqtwB > user.SmbReparse=0sDAAAoGgAAAAuAC4AAAAuAAAAAABvAHAAdAAvAGMAZQBwAGgALwBzAGMAcgBhAHQAYwBoAC8AdABlAHMAdAAvAHgAbwBwAHQALwBjAGUAcABoAC8AcwBjAHIAYQB0AGMAaAAvAHQAZQBzAHQALwB4AA== > > Any suggestions appreciated as to what's going wrong - happy to provide network traces if that's needed. > > Thanks, > > Matthew > > Matthew Richardson <m.richardson@ed.ac.uk> writes: > >> I've just tried the 6.16 kernel from mainline (Linux vm-b >> 6.16.0-061600-generic #202507272138 SMP PREEMPT_DYNAMIC Sun Jul 27 >> 22:00:36 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux) and while mkfifo works >> again, ln -s is still giving 'operation not supported'. > > Yes - mainline is still broken. I'll send a fix soon to ML. > The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336. Is e buidheann carthannais a th’ ann an Oilthigh Dhùn Èideann, clàraichte an Alba, àireamh clàraidh SC005336. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Samba] SMB3 Unix Extensions - creating special files 2026-03-03 0:41 ` Nikkos Svoboda @ 2026-03-03 1:13 ` Jeremy Allison 2026-03-03 2:29 ` Jim DeLaHunt 0 siblings, 1 reply; 15+ messages in thread From: Jeremy Allison @ 2026-03-03 1:13 UTC (permalink / raw) To: samba, linux-cifs On 3/2/26 4:41 PM, Nikkos Svoboda via samba wrote: > > Jumping in here briefly, I believe the "default" symlink style > requested by the client mount options is now "symlink=native", which > creates the 0-sized files with extended attributes on the server. > > I'd also like to know: Is it intended to allow creation of "actual" > symlinks on a supported server filesystem via unix 3.1.1 Extensions? The > mount option "symlink=unix" (which creates "actual" symlinks on the > server), when used with SMB 3.1.1 unix extensions, causes symlink > creation to fail on the client with "Operation not supported" (client > kernel 6.17, ubuntu 24.04). That mount option appears to be referred to > as "SMB1 unix create symlink command" which I presume means it is > limited to the SMB1 unix extensions. > > The archived e-mail conversation chain here (though it includes some > outdated information) helped me to understand some of what the symlink= > and reparse= mount options were intended for: > https://lwn.net/ml/all/20241007183650.aw3skuztljpgk2bs@pali/ The goal (at least when I was involved with this effort) was to explicitly *ban* SMB3 UNIX extensions ever from creating server-side symlinks. Such activities are inherently unsafe and a source of many, many CVE's. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Samba] SMB3 Unix Extensions - creating special files 2026-03-03 1:13 ` Jeremy Allison @ 2026-03-03 2:29 ` Jim DeLaHunt 0 siblings, 0 replies; 15+ messages in thread From: Jim DeLaHunt @ 2026-03-03 2:29 UTC (permalink / raw) To: samba, linux-cifs On 2026-03-02 17:13, Jeremy Allison via samba wrote: > On 3/2/26 4:41 PM, Nikkos Svoboda via samba wrote: >> >> Jumping in here briefly, I believe the "default" symlink style >> requested by the client mount options is now "symlink=native", which >> creates the 0-sized files with extended attributes on the server. >> >> I'd also like to know: Is it intended to allow creation of >> "actual" symlinks on a supported server filesystem via unix 3.1.1 >> Extensions? The mount option "symlink=unix" (which creates "actual" >> symlinks on the server), when used with SMB 3.1.1 unix extensions, >> causes symlink creation to fail on the client with "Operation not >> supported" (client kernel 6.17, ubuntu 24.04). That mount option >> appears to be referred to as "SMB1 unix create symlink command" which >> I presume means it is limited to the SMB1 unix extensions. >> >> The archived e-mail conversation chain here (though it includes >> some outdated information) helped me to understand some of what the >> symlink= and reparse= mount options were intended for: >> https://lwn.net/ml/all/20241007183650.aw3skuztljpgk2bs@pali/ > > The goal (at least when I was involved with this effort) was to > explicitly *ban* SMB3 UNIX extensions ever from creating server-side > symlinks. > > Such activities are inherently unsafe and a source of many, many > CVE's. The SMB3 behaviour with server-side symlinks baffled and obstructed me greatly, when I switched from connecting my Mac client to the file server via AFP to connecting via SMB. I think there is a conceptual difference here. I think the Samba documentation doesn't do a great job of making it explicit. This can result in people talking past each other when it comes to symlinks (and filename normalisation, and more). I regard the files on the filesystem as the primary and long-lived asset. I regard the filesystem as some sort of idealised POSIX behaviour, including symlinks for internal references from one part of the served content to another. The data content lasts decades. In that time, the server file system may be Linux ext2, then Linux ext3, then ZFS. The clients may connect via AFP, or NFS, or SMB. What I want from every file access system is to present the server file system transparently. In contrast, I think the baseline Samba mindset is that the SMB presentation of the server content is the primary asset. The presented filesystem is some sort of idealised Windows network server. The contents of the server filesystem are opaque. The physical files on the server should only be accessed via SMB, not by AFP or NFS or by software running natively on the server. If the contents of the server filesystem are opaque, it is understandable that SMB might represent what look like symlinks to the client as SMB-specific Minshall+French format files. It is understandable to SMB might regard server-side symlinks as inherently unsafe. If I could find a way to explain these different conceptual models in the Samba wiki, and link from the SMB3 Unix extensions documentation to that explanation, I feel I might help other people who are looking for the same transparency from SMB which I am. But I have the feeling that the conceptual difference is so implicit that there is not a good place in the existing structure to put it. Best regards, —Jim DeLaHunt -- . --Jim DeLaHunt http://blog.jdlh.com/ (http://jdlh.com/) Vancouver, B.C., Canada ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Samba] SMB3 Unix Extensions - creating special files [not found] ` <CAH2r5mt_9GcPqg+v9QLXEroKJ9RQZ1MwtpPgprU+xHOSksiWqw@mail.gmail.com> 2025-07-31 19:24 ` Matthew Richardson @ 2025-07-31 19:59 ` Paulo Alcantara 1 sibling, 0 replies; 15+ messages in thread From: Paulo Alcantara @ 2025-07-31 19:59 UTC (permalink / raw) To: Steve French; +Cc: Matthew Richardson, Ralph Boehme, Samba Listing, CIFS Steve French <smfrench@gmail.com> writes: >> FILE_SUPPORTS_REPARSE_POINTS, which breaks against samba because it > isn't set. IOW, we should skip this check for SMB3.1.1 POSIX mounts. > > We did add this patch to 6.16 in mainline > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/fs/smb/client?id=8767cb3fbd514c4cf85b4f516ca30388e846f540 This patch doesn't fix the problem with creating symlinks reported by Matthew. Note that I've run the tests with v6.16 kernel. I'll send a follow-up patch soon that fixes both socket and symlink issues. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Samba] SMB3 Unix Extensions - creating special files 2025-07-31 17:37 ` Paulo Alcantara 2025-07-31 18:03 ` Matthew Richardson @ 2025-07-31 19:20 ` Ralph Boehme 2025-07-31 19:55 ` Paulo Alcantara 1 sibling, 1 reply; 15+ messages in thread From: Ralph Boehme @ 2025-07-31 19:20 UTC (permalink / raw) To: Paulo Alcantara, Matthew Richardson; +Cc: samba, CIFS, Steve French [-- Attachment #1.1: Type: text/plain, Size: 378 bytes --] On 7/31/25 7:37 PM, Paulo Alcantara wrote: > I see a regression when attempting to create symlinks and sockets. Note > the 'nativesocket' and 'symlink=unix' options, which are definitely > wrong for SMB3.1.1 POSIX mounts. It should have 'symlink=native' and > 'nonativesocket'. ahh, sorry, but I was kind of expecting that. There are just too many options. -slow [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 840 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Samba] SMB3 Unix Extensions - creating special files 2025-07-31 19:20 ` Ralph Boehme @ 2025-07-31 19:55 ` Paulo Alcantara 0 siblings, 0 replies; 15+ messages in thread From: Paulo Alcantara @ 2025-07-31 19:55 UTC (permalink / raw) To: Ralph Boehme, Matthew Richardson; +Cc: samba, CIFS, Steve French Ralph Boehme <slow@samba.org> writes: > On 7/31/25 7:37 PM, Paulo Alcantara wrote: >> I see a regression when attempting to create symlinks and sockets. Note >> the 'nativesocket' and 'symlink=unix' options, which are definitely >> wrong for SMB3.1.1 POSIX mounts. It should have 'symlink=native' and >> 'nonativesocket'. > > ahh, sorry, but I was kind of expecting that. There are just too many > options. +1 ^ permalink raw reply [flat|nested] 15+ messages in thread
[parent not found: <notmuch-sha1-71ace0e0808cb1155c98f212b8406ee293b20f11>]
* Re: [Samba] SMB3 Unix Extensions - creating special files [not found] ` <notmuch-sha1-71ace0e0808cb1155c98f212b8406ee293b20f11> @ 2025-07-31 18:00 ` Paulo Alcantara 0 siblings, 0 replies; 15+ messages in thread From: Paulo Alcantara @ 2025-07-31 18:00 UTC (permalink / raw) To: Ralph Boehme, Matthew Richardson; +Cc: samba, CIFS, Steve French Paulo Alcantara <pc@manguebit.org> writes: > Ralph Boehme <slow@samba.org> writes: > >> ...adding linux-cifs and Steve to the loop.... >> >> Looks to be a client issue: the client is checking for existence of the >> targets, the server returns ENOENT and then that's it. There no attempt >> to create either a symlink nor the fifo as reparse points. >> >> @Steve: any idea of what could be going wrong? Iirc this is supposed to >> be working in the client. > > With Linux v6.16 and samba master (f1a828016921): > > root@fed:~# mount.cifs //192.168.124.1/test /mnt/1 -o username=testuser,password=foo-123,unix > root@fed:~# mount -t cifs > //192.168.124.1/test on /mnt/1 type cifs (rw,relatime,vers=3.1.1,cache=strict,upcall_target=app,username=testuser,uid=0,noforceuid,gid=0,noforcegid,addr=192.168.124.1,file_mode=0755,dir_mode=0755,soft,posix,posixpaths,serverino,reparse=nfs,nativesocket,symlink=unix,rsize=4194304,wsize=4194304,bsize=1048576,retrans=1,echo_interval=60,actimeo=1,closetimeo=1) > root@fed:~# (cd /mnt/1; rm -rf *; mknod chr c 2 1; mknod blk b 3 4; mknod fifo p; ln -s f0 l0; python -c "import socket as s; sock = s.socket(s.AF_UNIX); sock.bind('sock')"; ls -lh) > ln: failed to create symbolic link 'l0': Operation not supported > total 0 > brwxrwxrwx 1 root fsgqa 3, 4 Jul 31 14:31 blk > crwxrwxrwx 1 root fsgqa 2, 1 Jul 31 14:31 chr > prwxrwxrwx 1 root fsgqa 0 Jul 31 14:31 fifo > -rwxrwxrwx 1 root fsgqa 0 Jul 31 14:31 sock > > I see a regression when attempting to create symlinks and sockets. Note > the 'nativesocket' and 'symlink=unix' options, which are definitely > wrong for SMB3.1.1 POSIX mounts. It should have 'symlink=native' and > 'nonativesocket'. Looks like a regression caused by 6c06be908ca1 ("cifs: Check if server supports reparse points before using them") By mounting the share again with 'unix,symlink=native,nonativesocket' and getting rid of this check in cifs_symlink() if (le32_to_cpu(pTcon->fsAttrInfo.Attributes) & FILE_SUPPORTS_REPARSE_POINTS) I was able to create symlink and socket: root@fed:~# (cd /mnt/1; rm -rf *; mknod chr c 2 1; mknod blk b 3 4; mknod fifo p; ln -s f0 l0; python -c "import socket as s; sock = s.socket(s.AF_UNIX); sock.bind('sock')"; ls -lh) total 0 brwxrwxrwx 1 root fsgqa 3, 4 Jul 31 14:51 blk crwxrwxrwx 1 root fsgqa 2, 1 Jul 31 14:51 chr prwxrwxrwx 1 root fsgqa 0 Jul 31 14:51 fifo lrwxrwxrwx 1 root fsgqa 2 Jul 31 14:51 l0 -> f0 srwxrwxrwx 1 root fsgqa 0 Jul 31 14:51 sock ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2026-03-03 2:29 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1124e7cd-6a46-40a6-9f44-b7664a66654b@ed.ac.uk>
[not found] ` <7082aea3-b28b-4ef5-9b5c-64d5d8b78cbc@samba.org>
[not found] ` <a4a32c8e-3b7f-4748-8c50-48f18e8980b9@ed.ac.uk>
2025-07-31 16:12 ` [Samba] SMB3 Unix Extensions - creating special files Ralph Boehme
2025-07-31 16:18 ` Steve French
2025-07-31 17:37 ` Paulo Alcantara
2025-07-31 18:03 ` Matthew Richardson
2025-07-31 18:15 ` Paulo Alcantara
[not found] ` <CAH2r5mt_9GcPqg+v9QLXEroKJ9RQZ1MwtpPgprU+xHOSksiWqw@mail.gmail.com>
2025-07-31 19:24 ` Matthew Richardson
2025-07-31 20:00 ` Paulo Alcantara
2026-03-02 15:09 ` Matthew Richardson
2026-03-03 0:41 ` Nikkos Svoboda
2026-03-03 1:13 ` Jeremy Allison
2026-03-03 2:29 ` Jim DeLaHunt
2025-07-31 19:59 ` Paulo Alcantara
2025-07-31 19:20 ` Ralph Boehme
2025-07-31 19:55 ` Paulo Alcantara
[not found] ` <notmuch-sha1-71ace0e0808cb1155c98f212b8406ee293b20f11>
2025-07-31 18:00 ` Paulo Alcantara
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox