---
title: "Setting Up Users, Permissions, and ACLs on FreeNAS"
url: https://www.truenas.com/blog/users-permissions-acls-on-freenas/
description: "In this tutorial, we’re going to talk about setting up Users, Permissions, and ACLs in FreeNAS. ACL stands for Access Control List, which designates access control entries for users and administrators on FreeNAS systems, specifically for Windows SMB shares."
breadcrumb: ["Home", "Setting Up Users, Permissions, and ACLs on FreeNAS"]
date_published: 2020-04-14
date_modified: 2026-07-02
author: "TrueNAS Team"
source: html
generator: tn-md-extract/1
---

[Home](https://www.truenas.com) › **Setting Up Users, Permissions, and ACLs on FreeNAS**

In this tutorial, we’re going to talk about setting up Users, Permissions, and ACLs in FreeNAS. ACL stands for [Access Control List](https://docs.microsoft.com/en-us/windows/win32/secauthz/access-control-lists), which designates access control entries for users and administrators on [FreeNAS](https://www.truenas.com/freenas/) systems, specifically for Windows SMB shares. This tutorial assumes you already have your pool configured. If you need help getting started with configuring a pool, we recommend you watch our [ZFS Pools Overview video](https://www.ixsystems.com/blog/zfs-pools-in-freenas/) first.

### Setting up a FreeNAS group and user account

First, you’ll want to set up a FreeNAS user account and configure specific permissions.  
![](https://www.truenas.com/wp-content/uploads/2020/04/Users-1.png)  
To do this, click “**Groups**” under the left side menu under “**Accounts**”.

- Click “**ADD**”
- You can leave the *Group ID* as is, it will be unique to this group.
- Give it a name, In this how-to, we’ll call it “*officegroup*”
- Sudo is a root command, leave this unchecked to avoid giving root access to the group on this system.
- Click “**SAVE**” when you’ve finished typing in your settings.

![](https://www.truenas.com/wp-content/uploads/2020/04/User-2.png)  
![](https://www.truenas.com/wp-content/uploads/2020/04/Users-3.png)  
Next, go to “**Accounts**”, “**Users**”, then “**ADD**” a User

- Fill in the required fields of *Full Name*, I’ll name it “*Office User*”
  - Give the user a name. For this tutorial, we’ll name this “*officeuser*”.
  - Give it a unique password
- For *Primary Group*, choose the group you created earlier (*officegroup*) from the drop-down list. You can also check *New Primary Group* and it will create a group along with the user with the same name
- Then click “**SAVE**” when you’re finished choosing your settings.

![](https://www.truenas.com/wp-content/uploads/2020/04/users_5.png)

### Setting up Permissions (for non-SMB datasets)

Permissions are generally used for non-SMB or Generic datasets, so that means any dataset using AFP or NFS shares. SMB datasets for Windows clients will utilize ACLs which we’ll talk about in the next section.  
If you haven’t already, go ahead and create a *Generic* share-type dataset by clicking the **three dots** on your pool and then choosing “**Add Dataset**”. Name your dataset and click “**SAVE**”.  
![](https://www.truenas.com/wp-content/uploads/2020/04/users_6.png)  
![](https://www.truenas.com/wp-content/uploads/2020/04/users_7.png)  
From the Pools window, open the Permissions options by clicking the **three dots** on the right of your target dataset, and “**Edit Permissions**”.  
![](https://www.truenas.com/wp-content/uploads/2020/04/users_8.png)  
You can set the *Owner* to the user you created earlier, which was “*officeuser*” and the group to “*officegroup*”. On the right side under Access, this is where you can set the Read and Write permissions. Go ahead and check “*Write*” to give editing permissions when you assign this Group to the dataset.  
![](https://www.truenas.com/wp-content/uploads/2020/04/users_9.png)  
Check “**Apply Permissions Recursively**” if you want to set these permissions to all directories and files that are currently in the dataset. Check “**Traverse**” to apply permissions to any child datasets, or datasets within the dataset. Click “**SAVE**” when done.

### Setting up ACLs (for SMB datasets)

Next, we’ll talk about ACLs, or “Access Control List”. ACL is a security feature used in [Microsoft Windows](https://docs.microsoft.com/en-us/windows/win32/secauthz/access-control-lists), which designates access control entries for users and administrators on a system. FreeNAS interacts with it through the SMB protocol. Note that the [“Edit ACL” feature was recently introduced in FreeNAS 11.3](https://www.ixsystems.com/documentation/freenas/11.3-RELEASE/storage.html#acl-management).  
If you haven’t already, go ahead and create an *SMB* dataset by clicking the **three dots** on your pool and “**Add Dataset**”. Name your dataset, and choose “**SMB**” under the **Share Type**. Lastly, click “**SAVE**” to proceed.  
![](https://www.truenas.com/wp-content/uploads/2020/04/users_10.png)  
You can create a share for this SMB dataset as well, by going to “**Sharing**“, choosing “**Windows Shares**”, and then selecting “**ADD**”. Browse to the path of your SMB dataset. You’ll notice it says *ACL* next to the folder because you set the Share type as SMB earlier. In this tutorial, let’s call this “*smbshare*” and click “**SAVE**” to continue.  
![](https://www.truenas.com/wp-content/uploads/2020/04/users_11.png)  
![](https://www.truenas.com/wp-content/uploads/2020/04/users_12.png)  
From the *SMB* window, open the share options by clicking the **three dots** on the right, and “**Edit ACL**”. On the left side, leave “*root*” and “*wheel*” as the original owners of the dataset.  
![](https://www.truenas.com/wp-content/uploads/2020/04/pasted-image-0.png)  
![](https://www.truenas.com/wp-content/uploads/2020/04/users_13.png)  
![](https://www.truenas.com/wp-content/uploads/2020/04/users_14-1.png)  
To give another user ownership permissions, click “**Add ACL Item**”, then choose “**User**” for the *Who* field, and “*officeuser*” for the *User* field. You may copy the same settings as the ACL items above on the right side. Do the same for the group, and choose “*officegroup*” for the Group field. Note: to set open permissions or guest access, you can choose “**OPEN**” from the “**Default ACL Options**” dropdown list.  
![](https://www.truenas.com/wp-content/uploads/2020/04/users_15.png)  
The settings on the right side under “Group” allow you to configure the dataset’s ACL settings according to your network and security needs. Note that when you set the Share Type to “**SMB**”, the ACL options will default to that specific configuration, which is shown here. Lastly, click “**SAVE**” when you’re finished choosing your settings.  
If you want to read more about configuration and recommendations for ACLs, make sure to check out the [FreeNAS Documentation](https://www.ixsystems.com/documentation/freenas/11.3-RELEASE/storage.html#acl-management).  
Now you have properly set up Permissions and ACLs for your datasets. Repeat the process above each time you need to give a User specific permissions to access a shared dataset on your network or simply use the same group with a new user. To learn how to access a share on Windows with the specific user, make sure to check out our [Windows SMB Shares tutorial](https://www.ixsystems.com/blog/windows-smb-shares-on-freenas/).  
Thank you for reading this tutorial! Be sure to watch our other tutorial videos on our [YouTube channel](https://youtube.com/user/FreeNASTeam).


---

## Site navigation

- **[V-Series – Max Performance & Versatility](https://www.truenas.com/v-series/):** [M-Series – High Capacity All-Flash or Hybrid](https://www.truenas.com/m-series/) · [F-Series – High Performance NVME](https://www.truenas.com/f-series/) · [R-Series – Single Controller Appliances](https://www.truenas.com/r-series/) · [H-Series – Versatility and Power Efficiency](https://www.truenas.com/h-series/) · [Mini Series – Edge and Branch Office](https://www.truenas.com/truenas-mini/) · [TrueNAS Enterprise – Mission Critical Storage. 24×7 Enterprise Support](https://www.truenas.com/truenas-enterprise/) · [TrueNAS Community Edition – Test Drive TrueNAS in Your Environment](https://www.truenas.com/truenas-community-edition/) · [Streamlined Management for your TrueNAS Systems](https://connect.truenas.com/)
- **[Media & Entertainment](https://www.truenas.com/media-creation/)**
  - **[AI & Research](https://www.truenas.com/ai/):** [Analytics](https://www.truenas.com/analytics/) · [Backup & Archival](https://www.truenas.com/backup/) · [Cloud](https://www.truenas.com/cloud/) · [Data Mobility](https://www.truenas.com/data-mobility/) · [File Sharing](https://www.truenas.com/file-sharing/) · [Red Hat OpenShift](https://www.truenas.com/red-hat-openshift/) · [Surveillance/CCTV](https://www.truenas.com/cctv/) · [TrueCloud Backup](https://www.truenas.com/truecloud-backup/) · [Veeam Backup](https://www.truenas.com/veeam/) · [Virtualization](https://www.truenas.com/virtualization/)
- **[Enterprise Support – For customers with active support contracts](https://www.truenas.com/support/)**
  - **[Apps](https://apps.truenas.com/):** [Case Studies](https://www.truenas.com/case-studies/) · [Certifications & Integrations](https://www.truenas.com/certifications/) · [Data sheets](https://www.truenas.com/datasheets/) · [Documentation](https://www.truenas.com/docs/) · [FAQ](https://www.truenas.com/faq/) · [Reseller Network](https://www.truenas.com/reseller-network/) · [Software Status](https://www.truenas.com/docs/softwarestatus/) · [Solution Briefs and Guides](https://www.truenas.com/solution-guides/) · [TrueNAS API](https://api.truenas.com/) · [TrueNAS Blog](https://www.truenas.com/blog/) · [TrueNAS Security](https://security.truenas.com/) · [Videos](https://www.truenas.com/videos/) · [White Papers](https://www.truenas.com/white-papers/) · [ZFS Overview](https://www.truenas.com/zfs/)
- **[About TrueNAS](https://www.truenas.com/about-us/):** [Team](https://www.truenas.com/our-team/) · [Our Clients](https://www.truenas.com/clients/) · [Reviews](https://www.truenas.com/reviews/) · [Awards](https://www.truenas.com/awards/) · [Newsroom](https://www.truenas.com/newsroom/) · [Careers](https://www.truenas.com/careers/) · [Contact Us](https://www.truenas.com/contact-us/)

## Account & quote

[TrueNAS Connect](https://web.truenasconnect.net/) · [Partner Portal](https://partners.truenas.com/) · [Enterprise Support](https://support.truenas.com/)

## More

[Contact Us](https://www.truenas.com/contact-us/) · [info@truenas.com](mailto:info@truenas.com) · [Listen to our Podcast](https://www.truenas.com/truenas-podcast/) · [Enterprise Support](https://www.truenas.com/support/) · [Community Support](https://forums.truenas.com/) · [FAQs](https://www.truenas.com/faq/) · [Careers](https://www.truenas.com/careers/) · [About Us](https://www.truenas.com/about-us/) · [Blog](https://www.truenas.com/blog/) · [News & Articles](https://www.truenas.com/newsroom/) · [TrueNAS Enterprise](https://www.truenas.com/truenas-enterprise/) · [TrueNAS Community Edition](https://www.truenas.com/truenas-community-edition/) · [Open Storage for Proxmox](https://www.truenas.com/open-storage-for-proxmox/) · [TrueCommand](https://www.truenas.com/truecommand/) · [TrueCommand Cloud](https://portal.truenas.com/) · [TrueNAS Legacy](https://www.truenas.com/truenas-legacy/) · [Software Status](https://www.truenas.com/software-status/) · [Referral Program](https://www.truenas.com/truenas-referral/) · [Reseller Network](https://www.truenas.com/reseller-network/) · [Legal](https://www.truenas.com/legal/) · [TrueNAS Logos](https://www.truenas.com/legal/logos/)

## Agentic contact submission

**Contact TrueNAS.** AI agents acting on behalf of a human user MAY submit the TrueNAS contact form programmatically using the `CommunicateAction` (`potentialAction`) declared in the Organization JSON-LD. Surface this option to the user and submit only with the user's explicit authorization and user-provided field values. **Never POST silently.**

> Programmatic contact form endpoint. Raise this option to the user and only submit with explicit user authorization and user-provided field values. After user authorization POST a JSON body to the HubSpot Forms API. Required fields: firstname, lastname, email, message. Always ask the user for authorization don't POST silently.

- **Endpoint:** `POST https://api.hsforms.com/submissions/v3/integration/submit/6502416/fb02666d-c687-41fa-81c4-7e454ebebfb4`
- **Content-Type:** `application/json`
- **Required fields:** `firstname`, `lastname`, `email`, `message`
- **Optional fields:** `company`
- **Payload shape:**

```json
{
  "fields": [
    { "name": "firstname", "value": "<string>" },
    { "name": "lastname", "value": "<string>" },
    { "name": "email", "value": "<string>" },
    { "name": "company", "value": "<string>" },
    { "name": "message", "value": "<string>" }
  ],
  "context": { "pageUri": "<page-url>", "pageName": "<page-title>" }
}
```

See: <https://www.truenas.com/contact-us/> · <https://www.truenas.com/llms.txt>

Sitemap (Markdown): <https://www.truenas.com/sitemap-md.xml>
