SMB file servers and NAS

Windows, Synology, TrueNAS, Unraid and QNAP.

Who can see it Partial
Works with Windows · Synology · TrueNAS · Unraid · QNAP
Set up in console

What it scans

Regular files in one SMB share, including its readable subfolders. Use this for Windows file servers, Synology, TrueNAS, Unraid and QNAP. For an existing host-mounted share, you can instead use Local mounts.

What you need

A customer-run agent with network access to the server on TCP 445. Create a dedicated scan account with list, traverse, read data and read permissions (READ_CONTROL). It needs no write or admin rights.

Step 1: Create a read-only scan account

Choose your server below. Labels vary by NAS release. Review inherited group grants too: a read-only user grant does not remove write rights from another group.

Windows file server

  1. For a domain account, open Active Directory Users and Computers → Users → New → User. Create myrikeep_scan as an ordinary user. For a standalone server, use Computer Management → Local Users and Groups → Users → New User.
  2. On the selected folder, open Properties → Sharing → Advanced Sharing → Permissions. Add the account and allow Read only.
  3. Open Properties → Security → Edit → Add. Add the same account and allow Read & execute, List folder contents and Read. Check inheritance reaches the intended files. Do not replace other users' ACLs.
  4. In Security → Advanced → Effective Access, select the account and verify the intended files are readable. Avoid membership in Administrators or Backup Operators.

Synology DSM

  1. Control Panel → User & Group → User → Create: create myrikeep_scan, without membership in administrators.
  2. Control Panel → Shared Folder → select share → Edit → Permissions: select local users and grant this account Read only for the chosen share.
  3. In File Station, open the target folder's Properties → Permission. Check inherited read, list and traverse rights on the intended subfolders. Remove conflicting grants for this scan account only.

See Synology shared-folder permissions.

TrueNAS

  1. In SCALE, Credentials → Users → Add: create an ordinary local user and enable SMB Access (older releases call this Samba Authentication). Do not choose an administration role. CORE uses Accounts → Users → Add.
  2. Datasets → select dataset → Permissions → Edit ACL: add a user entry with the Read preset, with traversal on parent datasets as needed. Check inheritance; do not strip or replace the existing ACL.
  3. Shares → Windows (SMB) Shares → select share → Edit Share ACL: grant the user READ. CORE calls the shares menu Sharing. Keep the SMB service enabled. Root cannot be the SMB scan account.

See TrueNAS SMB shares and user accounts.

Unraid

  1. Users → Add User: create myrikeep_scan with a password. Use a share user; the root administration account cannot log into SMB shares.
  2. Shares → select share → SMB Security Settings: set Export to Yes and Security to Private.
  3. In SMB User Access, give the scan user Read-only for this share. Leave unrelated users' permissions intact. Check filesystem permissions if existing files still cannot be read.

See Unraid share security.

QNAP QTS / QuTS hero

  1. Control Panel → Privilege → Users → Create → Create a User: create myrikeep_scan without administrator group membership.
  2. Control Panel → Privilege → Shared Folders → select share → Edit Shared Folder Permission: choose the user and set Read Only (RO).
  3. If Advanced Folder Permissions or Windows ACL support is enabled, inspect the selected folder's permissions and inherited read/traverse entries too. Keep the scan account unable to change files or permissions.

See QNAP folder permissions.

Step 2: Check SMB and account settings

Enable SMB2 or SMB3 on the server; SMB1 is unsupported. Keep SMB signing enabled or required. The agent uses the SMB client's negotiated protocol and signing; there is no console dialect/signing switch. In DSM these controls are under Control Panel → File Services → SMB → Advanced Settings; see Synology SMB settings.

For a domain user, put myrikeep_scan in secret username and the NTLM domain such as EXAMPLE in domain. The agent logs in as EXAMPLE\myrikeep_scan. For a NAS/local user, omit domain unless the server requires its NetBIOS name. Use the server account, not an unrelated account on the agent host.

Step 3: Add the connection

Open Connections → Add connection, select SMB file share, assign your agent, and choose Local credential catalog. Enter the host and share name separately. Save the credential files below on the agent. Wait for present, then queue a small scan in Scans. Check Coverage as well as Findings.

Connection settings table

Console field Example Required or optional
Connection name Office reports Required; unique in workspace
Type SMB file share (smb) Required
Host nas.example.test Required; no URL or share path
Share reports Required; not a UNC path
Port 445 Optional; default 445
Agent Office agent Required; same workspace
Credential mode Local credential catalog Required
Credential name SMB_REPORTS Required; uppercase alias
Exclude patterns (View/edit) *.tmp Optional; one glob per line
Enabled (connection row) Enabled Disable to stop new scans

Username and domain belong in the secret, not in console fields.

Secret file

Save /srv/myrikeep/secrets/SMB_REPORTS:

json
{"username": "myrikeep_scan", "password": "<SCAN_ACCOUNT_PASSWORD>", "domain": "EXAMPLE"}

Omit domain entirely for a local NAS user if unnecessary. Merge this entry into /srv/myrikeep/secrets/myrikeep-credentials.json:

json
{"version": 1, "credentials": {"SMB_REPORTS": {"type": "smb", "source": {"kind": "file_json", "path": "/run/secrets/SMB_REPORTS"}}}}

Use the ownership, modes and read-only directory mount in Agent credentials. These are placeholders; replace the password only on your host.

Scope, exclusions and schedules

One connection covers one share. Use a separate read-only share if you need a smaller provider-enforced boundary. In Connections → View/edit, exclude *.tmp, Archive/* or */.snapshot/* before content reads. Matching is case-sensitive against relative paths and basenames. See Getting started for schedules and cadence.

"Who can see it" support

The agent inspects file DACLs for broad read grants, including Everyone, Authenticated Users and BUILTIN Users. Domain Users needs a known domain SID mapping configured by the agent operator. It does not expand group membership. Share ACL inspection is unavailable, so SMB sharing results remain partial; no broad grant does not prove restricted access. Last-write time supports age review. Last-access time is unreliable. See Who can see it.

Troubleshooting

State or error What to do
unknown credential Wait for a current-revision heartbeat; check agent online status and assignment.
missing / credential_missing Match the catalog alias and smb type; check directory mount.
Invalid / credential_config_invalid Check exact JSON fields, nonempty values, file owner/mode and no symlinks.
present Secret shape is valid; this does not test SMB login or file access.
source_error / cannot open SMB session Check DNS, TCP 445, username/domain, password, SMB2/3 and signing. Inspect agent diagnostics locally.
Access denied / cannot list / cannot read Check both share and file ACLs, traversal and inherited denies as the scan user.
Sharing access_denied Allow reading file permissions (READ_CONTROL); content access alone may be insufficient.
Paused / Migration paused / Disabled Resume the agent, assign and save a valid migrated connection, or enable the connection.
signin_required Only personal-drive OAuth uses this state. SMB uses its catalog password.

Limits

No writes, permission changes or share discovery. Symlinks, junctions, other reparse points and special files are skipped. Sampling and parser limits apply: PDF text, modern Office and common text formats have parsers; other formats get strings-only checks. Text in images and scanned PDFs needs OCR, an optional premium feature a workspace owner enables; it runs inside your agent with the OCR agent image. A completed scan can still have skipped files; inspect Coverage.