TrueNASGuide
sharing

Setting Up SMB Shares on TrueNAS SCALE

A step-by-step guide to creating SMB shares on TrueNAS SCALE — dataset layout, user permissions, ACLs, and the gotchas that make SMB look broken when it isn't.

By Editorial · · 8 min read

SMB is the most common reason people buy a NAS. Windows and macOS both speak it natively; iOS and Android have decent third-party clients; and most home applications can write to an SMB share. Getting it right on TrueNAS SCALE takes about fifteen minutes once you know the steps. Getting it wrong creates permission errors that look mysterious for an afternoon.

This guide walks through a clean SMB setup that will not bite you later.

Dataset structure first

Resist the temptation to share tank directly. Build the dataset structure first, then layer SMB shares on top of individual datasets. This gives you per-dataset snapshot schedules, quotas, compression settings, and permissions.

A reasonable starting layout:

tank/
├── users/
│   ├── alice/
│   ├── bob/
│   └── shared/
├── media/
│   ├── movies/
│   ├── tv/
│   └── music/
└── apps/
    └── (created by app installer, do not share)

Each entry above is a dataset, not just a directory. Create them via the TrueNAS web UI at Datasets → Add Dataset.

Per-dataset settings to consider at creation time:

Create a user and a group

Avoid using root for SMB authentication. Create dedicated users.

  1. Go to Credentials → Local Users → Add.
  2. For each person who needs access (e.g., alice), create a user.
  3. Set a SMB-compatible password (the UI will prompt). Disable shell access if the user does not need it.
  4. Optionally, create a group at Credentials → Local Groups → Add for households or families. family is a fine name.

For shared datasets like tank/users/shared, the group is your friend: you grant the group write access, then add household users to the group.

Set ownership and permissions

On the dataset, set ownership to the user (or group) who should own its contents. Go to Datasets → select dataset → Edit Permissions.

For a personal dataset like tank/users/alice:

For a shared dataset like tank/users/shared:

Recurse the permissions when prompted, so existing files and directories adopt the new ACL.

Enable the SMB service

Go to System Settings → Services.

Find SMB, enable the “Start Automatically” toggle, and start the service. Click the pencil icon to configure it:

Create the SMB share

Go to Shares → Windows Shares (SMB) → Add.

Save and refresh. The share is live.

Connect from a client

From Windows 11: in Explorer’s address bar, type \\<truenas-ip>\<share-name>. You will be prompted for credentials — use the TrueNAS local user account.

From macOS: Finder → Go → Connect to Server → smb://<truenas-ip>/<share-name>. Save credentials in Keychain for persistence.

From iOS / iPadOS: Files app → Browse → Connect to Server → enter the SMB URL.

From Android: use a SMB-aware app like Solid Explorer or Cx File Explorer.

If clients cannot find the server by hostname, use the IP. mDNS / NetBIOS discovery is unreliable across modern routers and is not worth debugging unless you have a specific reason to.

The most common gotchas

“Operation not permitted” or “Access denied” after a clean setup. The dataset ACL is set correctly but the SMB share is using the dataset path’s UNIX permissions instead of ACLs, or vice versa. Open the share, confirm Enable ACL is ON, and re-recurse permissions from the dataset edit dialog.

Permissions look right but new files appear with wrong ownership. This is an inheritance issue. On the dataset’s ACL, ensure the Inherit flag is set on the parent ACL entry so newly created files and folders inherit ownership and ACLs. Recurse permissions one more time after toggling.

macOS asks for credentials every time despite “Remember Password.” Keychain is corrupted or there is a mismatch between the saved username and the actual SMB user. Open Keychain Access, search for the NAS hostname, delete the entry, and reconnect — re-save credentials cleanly.

Time Machine cannot find the share. TrueNAS exposes Time Machine support through a specific share Purpose. Re-create the share with Multi-user time machine selected. Set a quota on the dataset so Time Machine does not consume the entire pool.

Slow large-file transfers from Windows. Disable the SMB Signing requirement on Windows if you are on a home LAN (Group Policy → Computer Configuration → Windows Settings → Local Policies → Security Options → Microsoft network client: Digitally sign communications (always) → Disabled). Re-enable on untrusted networks.

SMB sees the share but won’t let you write. Almost always an ACL issue. From the TrueNAS shell:

zfs get aclmode,aclinherit,acltype tank/users/alice

For SMB-shared datasets, you want aclmode=restricted (or passthrough), aclinherit=passthrough, acltype=nfsv4. Adjust via the dataset Edit dialog rather than the shell.

Where to go from here

#truenas #truenas-scale #smb #samba #shares #permissions

Related

Comments