Samba, oh Samba. Let’s start with this, I am not a fan of Samba on native OSes. I believe that this has almost nothing to do with Samba itself and everything to do with the tooling around it. Specifically, the tooling to create the access configuration file. In my view there are at least two problems: 1)more is too much and 2)not enough is too little.
In the “more is too much” category, it seems like there are too many ways to configure access control and get the same result from a user perspective. From an admin’s perspective, the process of determining how to configure Samba is complex and requires understanding not just Linux file security but the file security approach of each client device (typically windows and macos) type. I am sure that full-time Samba administrators appreciate the flexibility but, as a homelab admin, I don’t.
In the “not enough is too little” category, I find the error messages opaque and difficult to resolve. This is opacity is exacerbated by what I view as poor client tools, partially due to “more is too much” which is likely the result of Samba’s (long) evolution. Personally, I don’t want/need to make the decision to split global configuration from share configurations. Or know when I should do one or the other. This flexibility makes it difficult to follow any tutorial because it all comes down to admin choice (which might be why I like Rails/Ruby as a dev environment – let me decide when the decision is meaningful to the outcome).
Having said all that, I did manage to configure Samba as a fairly open common shared storage in step 1. Seems to be working well for its purpose over the last 24 hrs (March 29-30, 2024) but I’ll keep you posted. Step 2 will be to create home directors and enable time machine backups.