Newbie wants to know SMB shares on MacOS from the ground up

Monkey_Demon

Explorer
Joined
Nov 11, 2016
Messages
85
I'm trying to understand the basics of SMB sharing from FreeNAS to MacOS. FreeNAS is 11.2-U6 and MacOS is 10.14.6 (Mojave).

On a FreeNAS computer -- let's call it NAS-Server -- I've configured an SMB share that will eventually house media to be accessed by Plex (and possibly Kodi). On NAS-Server its path is /mnt/Volume1/Media. Similarly, there's another share on NAS-Server called Homes. On the Mac and in Finder's sidebar, I see the NAS drive on the Network. but if I choose Network > {NAS drive name}, Finder shows nothing as its contents.
  1. Shouldn't the device shown as Network > NAS-Server have another level in which Media and Homes appear? On my machine it doesn't.
  2. Shouldn't the Locations section of the Finder sidebar include Media and Homes? Or should it show NAS-Server/Media and NAS-Server-Homes? It doesn't show either.
What's wrong?
 

diedrichg

Wizard
Joined
Dec 4, 2012
Messages
1,319
Have you tried connecting to it directly using the menu item: Go>Connect to Server
smb://serverIPaddress/ShareName

You can then pin the smb share to the sidebar. You can also setup a Automator script to have it connect to the share at login - good for syncing software.
 

seanm

Guru
Joined
Jun 11, 2018
Messages
570
Shouldn't the device shown as Network > NAS-Server have another level in which Media and Homes appear? On my machine it doesn't.

No, macOS only lists the server there, not the individual shares. It can't reliably list the shares until it connects to the server since different users may have or not have access to different shares.
 

Monkey_Demon

Explorer
Joined
Nov 11, 2016
Messages
85
Have you tried connecting to it directly using the menu item: Go>Connect to Server
smb://serverIPaddress/ShareName

Yes, with mixed success.

In an effort to fix this and several other things, I carefully went over my FreeNAS configuration and changed several things regarding volumes, datasets, shares, users, groups, and permissions. Since some of this is relevant, here are summaries of the before and after.

  • Volume1 is the sole pool: a mirrored combination of 4 x 4 TB drives, with 2 drives per vdev
  • No systematic naming convention to distinguish datasets from folders (directories)
  • No systematic attempt to be consistent with connected devices and their OS's
  • Datasets and directories aimed primarily for general purposes were haphazardly named, often according to the primary app that would use them. E.g.:
    • "Media" was used to store media,
    • But "ZoteroLibrary" was used to store documents. (Zotero is reference management software with a plugin that maintains a library of documents associated with individual references.)
  • Access to such purpose-specific datasets was haphazard
  • User home directories were in /mnt/Volume1/home
  • Volume1 continues to be the sole pool
  • Unless overridden by another convention, names of datasets begin with a capital letter (e.g., Media)
  • Since we mainly use Macs, where possible data structures and names mimic Mac conventions
  • Top-level datasets and directories for general purposes use generic names independent of specific apps.
    • "Media" is still used
    • But now "Documents" is used instead of "ZoteroLibrary."
      • Nonetheless, because the Zotero library has a format that's specific to Zotero, it's in a dataset located at /mnt/Volume1/Documents/ZoteroLibrary.
  • Access to such purpose-specific datasets is done through groups.
    • User "media" owns "Media" and all its children, and both are in the "media" group; users with access to Media are also in the media group.
    • User "webdav" owns "Documents" and all its children, and they're all in the "webdav" group; users allowed to access these documents are also in the "webdav" group.
  • User home directories are in /mnt/Volume1/Users
    • I still have a problem here that I need to resolve. User names follow the convention of being entirely lowercase, but the datasets intended for the individual users all have names beginning with a capital letter (e.g., "joe" is the user name, but "Joe" is the dataset name). Furthermore, although the user datasets are all children of "Users," they do not show up in ls -la /mnt/Volume1/Users/. I need to understand this better and resolve the contradiction.
    • The primary group for ordinary users is "users."
    • "plex" is a user strictly for administrative purposes, and its primary group is "media."
  • Dataset "Media" contains three child datasets:
    • Movies
    • Music
      • For testing purposes, I also created 3 folders under Music: "Lake Street Dive," "Pink Floyd," and "Sharon Robinson"; each one contains one album and its music by the respective artist.
    • TV Shows
  • Initially, three datasets are shared:
    • "Media" and "Users" are SMB shares.
    • "Documents" is a webdav share.

So, now I can attach with:
Code:
Go>Connect to Server​
smb://<serverIPaddress>/Media

And now, as seanm said, I can see individual shares. But some of them no longer exist, and the new ones do not appear.

Here's what I see in Finder:
Code:
   <serverIPaddress>
       homes
       <my user name> with lowercase first letter
       Media

I can also click on Media in Finder, and then I see the three directories I created (see "Show: After," above): Movies, Music, and TV Shows. When I click the down arrows next to each, under Music I see the three artists' directories I created, their respective albums, and their mp3 files.

But I have no idea why Finder is showing the first two items. Currently, the only SMB shares are Media and Users. And although I do have a dataset with my own user name, its first letter is capitalized. But what I see in Finder is:
  • "homes," which AFAIK no longer exists
  • <my user name> with lowercase first letter, which is indeed the name of my home directory, but the corresponding dataset's name begins with a capital letter, and neither my home directory nor the dataset have their own share
Instead, if Finder were displaying only SMB shares, this is what I'd expect to see:
Code:
    <serverIPaddress>
        Users
        Media

with Media containing the subdirectories as described above.

Furthermore, if I try to attach to the server with smb://<serverIPaddress>/Users instead of smb://<serverIPaddress>/Media, I get an error message: "There was a problem connecting to the server '<servierIPaddress>'. Check the server name of IP address, and then try again. If you continue to have problems, contact your system administrator."

Does anyone have any idea of what's going on? I sure don't.

(Comment: This morning, 10/25, sretalla apparently posted a reply asking if I'm substituting the actual IP address for "serverIPaddress." The reply is gone, so apparently it was deleted. But of course I am making the substitution; the parts reproducing what Finder was showing used the same convention, and Finder can only show the actual IP address. I was merely adopting diedrichg's nomenclature. But to be clear, I've gone back and adopted the convention of using angle brackets, as in "<serverIPaddress>," to indicate items involving such substitutions.)
 
Last edited:

diedrichg

Wizard
Joined
Dec 4, 2012
Messages
1,319
Sounds like permissions issues. Be sure that each user, or group, has permissions for the respective dataset.

Speaking of which... Do Zotero, Music, Movies, and TV require their own permissions? The idea of datasets is to add granular permissions control to the content within. I'm guessing anything in your Media dataset (music, movies, tv) only need to be folders, not datasets themselves - the Media dataset will control the permissions for its content and everything inside it can just be folders.
*Pool
>>Media (dataset with user or group permissions)
..... Music (folder, no permissions)
..... Movies (folder, no permissions)
.....TV (folder, no permissions)

Just be sure the"inherit permissions" checkbox is set in the Media dataset settings.
 

diedrichg

Wizard
Joined
Dec 4, 2012
Messages
1,319
The only checkbox I have in my SMB share is
1572022546271.png


My permissions:
dvgmar (pool name) - root/wheel, 777, no recursive permissions
.....shared (dataset) - root/family, no recursive permissions [I just noticed that this was a Windows ACL, I thought all my datasets were Unix]
..........media (dataset) - root/family, 775 [this should be 770 but apparantly I have a folder in there that won't change permissions]
 

Monkey_Demon

Explorer
Joined
Nov 11, 2016
Messages
85
Sounds like permissions issues. Be sure that each user, or group, has permissions for the respective dataset.
The Users dataset belongs to root and has group "users." My personal account, just call me "monkey," has "users" as its primary group with admin, documents, family, users, media, webdav, and wheel being other groups. ls -l /mnt/Volume1 yields this line for Users:
Code:
drwxrwx---+ 6 root users 7 Oct 23 19:28 Users
.

Speaking of which... Do Zotero, Music, Movies, and TV require their own permissions? The idea of datasets is to add granular permissions control to the content within. I'm guessing anything in your Media dataset (music, movies, tv) only need to be folders, not datasets themselves - the Media dataset will control the permissions for its content and everything inside it can just be folders.
*Pool
>>Media (dataset with user or group permissions)
..... Music (folder, no permissions)
..... Movies (folder, no permissions)
.....TV (folder, no permissions)

Just be sure the"inherit permissions" checkbox is set in the Media dataset settings.

As far as I can tell for now, their permissions should be identical. But managing their sizes is why I want finer granularity.
 

Monkey_Demon

Explorer
Joined
Nov 11, 2016
Messages
85
The only checkbox I have in my SMB share is
View attachment 33558

My permissions:
dvgmar (pool name) - root/wheel, 777, no recursive permissions
.....shared (dataset) - root/family, no recursive permissions [I just noticed that this was a Windows ACL, I thought all my datasets were Unix]
..........media (dataset) - root/family, 775 [this should be 770 but apparantly I have a folder in there that won't change permissions]

For the Users SMB share:
  • Browsable to Network Clients is checked;
  • Because Users' is where users' home directories are, the "Use as home share box is checked";
  • Because users need to modify configuration files, the "Show Hidden Files" box is checked.
Here's how things look from the Shell:
Code:
cd /mnt
> ls -l
   drwxr-xr-x 6 root wheel 6 Oct 23 19:24 Volume1 (pool name)
> cd Volume1; ls -l
   drwxrwx--- 6 root users 6 Oct 23 19:28 Volume1 Users (see below about share types)
> cd Users; ls -l
   drwxr-x--- 6 monkey users 3 Oct 24 15:15 monkey (home directory)


We use mainly Apple & *nix computers. Apple is dropping AFP and switching to SMB. This why I use SMB shares for ordinary file access.

I have another location /mnt/Volume1/Documents that I'll need to access the same way, with an SMB share. I may want one of its children, ZoteroLibrary, to be directly accessible as a WebDAV share; or I may make Documents accessible as a WebDAV share and require users to add ZoteroLibrary to the path if that's where they want to go. I'm inclined to making ZoteroLibrary its own WebDAV share to make accessing it easier. But I probably will want to restrict it to read-only for some users. This still has to be worked out.

In the meantime, I'd still like to be able to log in to monkey's home directory as user "monkey."
 
Last edited:

Glorious1

Guru
Joined
Nov 23, 2014
Messages
1,211
I'm still using only AFP. People have been saying for over six years that Apple is dropping it - if and when they do I'll cross that bridge. My Mac is so old I can't use the last two macOS versions anyway, so I'm "future-proofed" ;)

Keep in mind Finder will show the names of the shares, not the names of the datasets. And once you hook up to it, it can see the AFP shares too, so it is showing them. Why you have missing shares I don't know - double-check the settings.

Make sure nothing is shared by two shares at the same time.

Shouldn't you share the actual user directories (like "monkey") with the home box checked, rather than "Users"? Maybe I misunderstood what checking that box does, or how to use. We directly share each individual user's home directory.

I'll attach a screenshot of mine. The name of the server, Tabernacle, shows in the sidebar (two of the shares are also pinned as Favorites. When I click on Tabernacle, all the shares show up.
shares.png
 
Top