Home ยท Volume 1 ยท Chapter 06

๐Ÿ“– Chapter 06 โ€” Users & Groups

The accounts that authenticate against SMB and the groups that make permissions manageable.

v0.1 ยท draft Vol 1 ยท Ch 06
~10 min

Learning Objectives

Introduction

Users and groups are the identity layer of your NAS. Every dataset, every share, every permission eventually resolves to a question: who is asking, and what are they allowed to do?

The good news: for a family of four, you only need about 5 user accounts and 1-2 groups. This is the simplest part of the system. The bad news: getting the admin-vs-root distinction wrong can lock you out of your own NAS. So we'll cover that carefully.

The identity model

TrueNAS has three kinds of accounts:

TrueNAS lets you create multiple local admins. For a family NAS, one is enough. For a small business, you might want two (so one person can be on vacation without locking the other out).

Why "no root for everyday work"

Using root for daily tasks is the Unix equivalent of driving with the parking brake on. Root can do anything โ€” including accidentally deleting the entire pool. A local admin can do most of what you need, but the system has guard rails. If a command is destructive and you're not root, the system will ask for confirmation or refuse outright.

More importantly: if you automate anything (scripts that mount shares, run apps, schedule tasks), those should use a service account or your local admin โ€” never root. A bug in a root-run script can wipe the whole system. A bug in an admin-run script is contained.

Common mistake

Setting up the NAS with the root account, doing all the configuration as root, then trying to "lock it down later." By the time you want to lock it down, you don't know which files were created by root (and therefore are unreadable by anyone else) and which were created by your admin. Start with the right identity model from day one.

Users: who needs an account?

For TK's family, four user accounts:

Note: there's no `admin` user separate from `tk`. The local admin role is a permission flag on the user account, not a separate account. `tk` is the admin; he's also a regular user with personal files.

When to add a new user

The rule: add a user when someone needs their own credentials and their own home directory.

Examples for a family:

Examples of when NOT to add a user:

Groups: how to manage permissions at scale

Imagine you have 4 family members and 6 shared datasets. Without groups, every permission rule looks like: "TK can read, Mimi can read, Lai can read, [future user] can read..." Every new user means editing every dataset.

With a group, the rule is: "Family can read." Add a new user? Add them to the Family group. Done.

The Family group

For TK's build, the conversation recommends exactly one group: Family. It contains all the family members (tk, mimi, lai). Every shared dataset (Family, Photos, Videos, Documents, Media) grants access to the Family group.

Private datasets are owned by individual users and explicitly do not grant access to the Family group. So the Family group gives you "easy on, easy off" for shared access.

Auxiliary groups for special access

Beyond the Family group, the conversation doesn't create any auxiliary groups in the v1 design. The pattern is:

You might add a `Media` group later if you want some family members to have access to the Media/Active dataset but not others. But for v1, just Family is enough.

When to add a group

The rule: add a group when 3+ users need the same special access that others don't have.

For a family of 4, this rarely happens. For a small business with 10 employees in different roles, it's a daily occurrence. Match the complexity to the situation.

Home directories

When you create a user, TrueNAS can create a home directory for them (a per-user dataset the user owns). The conversation's recommendation: don't use the built-in home directory feature.

Why? Because the home directory convention puts user data in a path like /home/tk, which is fine for a Linux server but awkward for an SMB-shared NAS. For TK's build, the "private dataset" pattern (tank/Private/tk) is cleaner and more visible to the family.

Skip the home directory field when creating users. Put personal files in private datasets instead.

Password policies

The conversation's stance: make them strong enough to be real security, but not so painful that your family writes passwords on sticky notes and sticks them to the monitor.

Recommendations for a family NAS

TrueNAS has a "Password Complexity" policy in the local user settings. Set it to "Normal" or higher, configure the minimum length, and move on. Don't over-engineer this.

Creating the first user

In the TrueNAS web UI: Credentials โ†’ Local Users โ†’ Add. The fields:

That's a user. Save. Move on.

Engineering Note

Identity is the foundation of security. A perfect permission model is useless if anyone can log in as anyone. A user model is the bedrock: every other security decision builds on it.

For a family NAS, the user model is intentionally simple: a small number of named accounts, one group, no service accounts that you don't need. Complexity creeps in over time (when apps need their own accounts, when friends need access, when a child gets old enough for their own account). Add complexity only when a real need drives it.

Summary

Users are accounts. Groups are collections of users. The Family group makes shared permissions simple. Private datasets are owned by individual users, not by groups. Root is for emergencies, not for everyday work; your local admin user is for everyday work. Skip the home directory convention โ€” use private datasets instead. Password policies: long, not rotated, stored in Vaultwarden.

Checklist

Looking Ahead

Chapter 07 covers permissions โ€” the rules that decide who can do what with each dataset. With users and groups in place, permissions become "which group or user gets read/write/deny on this dataset." The model is small but the implications are deep.

Ch 06 ยท v0.1 ยท drafted from the original ChatGPT conversation, July 2026