There is a share option ‘abe’ (access based enumeration). If enabled on a share, clients will only see the files they have some sort of access to. You could try disabling that and see if the results are more what you expect.

 

I suspect the difference in behavior is probably related to when specifying an exact filename as a parameter to ls, it tries to do a stat(2) (or the SMB equivalent), while a glob will get expanded by the shell, and the needs to enumerate the contents of a directory (which is where the abe option may come into play) to figure out what the expansion is (which if it succeeds, is then passed as parameters to the command).

 

 

 

From: Gabriele Bulfon via illumos-developer <developer@lists.illumos.org>
Date: Wednesday, October 2, 2024 at 8:30
AM
To: illumos-developer <developer@lists.illumos.org>
Subject: [developer] possible bug in smbfs ?

Hello, we have an illumos system with many zones, and a separate illumos system sharing CIFS folders in workgroup mode.

Each zone mounts a dedicated share with just its own permissions, using smbfs.
After some time we realized something wierd was happening: in some folders running just "ls" from the zone shows only 125 files while on the storage dataset ther are more than 1000. File permissions are ok, all the same.

More, missing files are different and random from zone to zone on their dedicated smb share.

Even more, missing files can be accessed from the zone specifying a full file name, but are missing when using "*":

root@z153:/export/home/dos/ariansped# ls ftparia.log
ftparia.log

root@z153:/export/home/dos/ariansped# ls ftparia.*
ftparia.*: No such file or directory

 

Is there any known bugs in this cifs client implementation?

Thanks,
Gabriele