Please let samba and smbd issue a warning message when a new declaration of "vfs objects" does not contain all objects from the previous definition.
The current behaviour of the option "vfs objects" is problematic in at least two cases:
- when "vfs objects" is specified both in [global] and in a share declaration, then the declaration in the share wipes out the objects that are declared in the default. As result only the ones declared in the share are active, the previous definition of additional objects is ignored.
- when samba runs as AD-DC, then "vfs objects" is secretly predefined, even before smb.conf is read. Any use in smb.conf will overwrite the already listed objects, breaking some important functionality. Users must know that and which ones are predefined, and add these objects to their list.
This behaviour is a pitfall that has already caused many problems, and is guaranteed to cause more problems in the future. Such pitfalls should be removed.
For cases when removing objects is required for single shares, demand that the ones to be removed are listed with a minus-sign like
vfs objects = acl_xattr -recycle
This would allow to remove recycle form the list for a single share, without issuing a warning message. It would make sure that people know whats going on, that others were defined earlier, and they really want to remove them.
Maybe also remove the alias "vfs object", because "vfs objects" is more compatible with the notion that one always has to specify a list all of them.