Overwriting a .3dm file (Ctrl+S) results in an empty NTFS ACL

Rhino version: 8 SR34 (8.34.26223.11001, 2026-08-11), Windows**

Summary:**
When overwriting an existing .3dm file, Rhino writes the new file with an empty DACL (not a NULL DACL — an explicitly empty access control list, meaning access is denied to everyone, including the file owner). The previous, correctly-permissioned version of the file is renamed to .3dmbak and retains its correct, inherited ACL. Only the newly written file is affected.

Steps to reproduce (100% reproducible on my system):

  1. Create a folder with standard NTFS inheritance (e.g. Administrators, SYSTEM, Users, Authenticated Users — all inherited from parent).
  2. In Rhino: create a new file, add an object, Save As into that folder (e.g. Test.3dm).
    → File’s ACL at this point: correct, inherited (all ACEs show the “Inherited” flag).
  3. Close Rhino completely.
  4. Re-open Test.3dm.
  5. Press Ctrl+S (plain overwrite save, no content changes needed).
  6. Close Rhino.
  7. Result:
    • Test.3dm → DACL is empty. Get-Acl shows no Access entries; SDDL is D:AI with no ACEs. File becomes inaccessible (Access Denied) even to the original owner.
    • Test.3dmbak → correct, inherited ACL is retained (equivalent to D:(A;ID;FA;;;BA)(A;ID;FA;;;SY)(A;ID;...;BU)(A;ID;...;AU)).

Additional observation: If instead an externally created .3dm file (e.g. copied from elsewhere, never previously saved by this Rhino installation) is opened and overwritten, the ACL is not wiped — but two side effects still occur: the file owner changes to the currently logged-in user, and the “Inherited” flag is lost on all ACEs (they become explicit entries with identical permissions instead of inherited ones). This suggests Rhino’s save routine does not properly preserve or re-establish the security descriptor when writing the replacement file (e.g. not using ReplaceFile with ownership/ACL preservation, and not applying inheritance from the target folder for newly created files) — and the total ACL loss seen with a file previously created via Rhino’s own “Save As” may be an extreme case of the same underlying issue.

Impact: After the second save, the file becomes inaccessible to all users, including the original creator/owner. Recovery requires an administrator to take ownership (takeown) and manually rebuild the ACL, or restoring from the .3dmbak file.

Test environment: Windows, local NTFS drive (not OneDrive/cloud-synced), local user account with local administrator rights.

Wow these AI posts are unreadable.

There don’t seem to be hundreds of other people complaining about the same thing, so this is probably specific to your network.

I can’t reproduce this either…

Maybe run SystemInfo in Rhino and post the results here?

Sorry for that. I tried to solve it with AI for hours, also researching the problem on the web. I couldn’t solve it… It only appears with rhino 3dm files, all other files seem to work. (also the 3dmbak files, which is weird)
So my workflow right now is working with the 3dmbak files only, renaming file every time i save..

Rhino 8 SR34 2026-8-11 (Rhino 8, 8.34.26223.11001, Git hash:master @ f416e902495235e4e4a45cfc29ff1320cc8c70d8)
License type: Commercial, build 2026-08-11
License details: Cloud Zoo

Windows 11 (10.0.26200 SR0.0) or greater (Physical RAM: 32GB)
.NET 8.0.30

Computer platform: LAPTOP - Plugged in [98% battery remaining]

Non-hybrid graphics configuration.
Primary display and OpenGL: NVIDIA Quadro P2000 (NVidia) Memory: 4GB, Driver date: 12-19-2025 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 582.16

Integrated accelerated graphics device with 4 adapter port(s)

  • Windows Main Display is laptop’s integrated screen or built-in port
    Primary OpenGL: NVIDIA Quadro P2000 (NVidia) Memory: 4GB, Driver date: 12-19-2025 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 582.16

Integrated accelerated graphics device with 4 adapter port(s)

  • Windows Main Display is laptop’s integrated screen or built-in port

Secondary graphics devices.
Intel(R) UHD Graphics 630 (Intel) Memory: 1GB, Driver date: 3-24-2021 (M-D-Y).

Integrated graphics device with 3 adapter port(s)

  • There are no monitors attached to this device. Laptop lid is probably closed

OpenGL Settings
Safe mode: Off
Use accelerated hardware modes: On
GPU Tessellation is: On
Redraw scene when viewports are exposed: On
Graphics level being used: OpenGL 4.6 (primary GPU’s maximum)

Anti-alias mode: 4x
Mip Map Filtering: Linear
Anisotropic Filtering Mode: High

Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 12-19-2025
Driver Version: 32.0.15.8216
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 4 GB

Rhino plugins that do not ship with Rhino
C:\Users\ludwi\Downloads\elefront421\ElefrontProperties.rhp “ElefrontProperties” 1.0.0.0
C:\Users\ludwi\AppData\Roaming\McNeel\Rhinoceros\packages\8.0\jifto\1.1.1\net8.0-windows\jifto.rhp “jifto” 1.1.1.0
C:\Program Files\Enscape\Enscape.Rhino.Plugin-net48\Enscape.Rhino8.Plugin.dll “Enscape.Rhino8.Plugin” 4.19.0.2748
C:\Program Files\Chaos Group\V-Ray\V-Ray for Rhinoceros\V6\VRayForRhino.rhp “V-Ray for Rhino”

Rhino plugins that ship with Rhino
C:\Program Files\Rhino 8\Plug-ins\Commands.rhp “Commands” 8.34.26223.11001
C:\Program Files\Rhino 8\Plug-ins\rdk.rhp “Renderer Development Kit”
C:\Program Files\Rhino 8\Plug-ins\AnimationTools.rhp “AnimationTools”
C:\Program Files\Rhino 8\Plug-ins\RhinoRenderCycles.rhp “Rhino Render” 8.34.26223.11001
C:\Program Files\Rhino 8\Plug-ins\rdk_etoui.rhp “RDK_EtoUI” 8.34.26223.11001
C:\Program Files\Rhino 8\Plug-ins\NamedSnapshots.rhp “Snapshots”
C:\Program Files\Rhino 8\Plug-ins\MeshCommands.rhp “MeshCommands” 8.34.26223.11001
C:\Program Files\Rhino 8\Plug-ins\RhinoCycles.rhp “RhinoCycles” 8.34.26223.11001
C:\Program Files\Rhino 8\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” 8.34.26223.11001
C:\Program Files\Rhino 8\Plug-ins\3dxrhino.rhp “3Dconnexion 3D Mouse”
C:\Program Files\Rhino 8\Plug-ins\Displacement.rhp “Displacement”
C:\Program Files\Rhino 8\Plug-ins\SectionTools.rhp “SectionTools”

That’s not normal and I don’t recall any reports of this - believe me, if it was a generalized problem of people not being able to access their saved files, we would have heard about it - loudly…

hm.
I can manually repair the files by opening the advanced settings of my file - security - and giving access to myself.
But after one save, it’s gone again..

Are you saving your files locally, or on a network drive?

That was also my first guess. But i did a test on C\rhinotest\test.3dm - also not working…

OK, I don’t know what to tell you, I’m not an expert in that area. Just curious, if you temporarily disable the 3 non-standard plug-ins (Enscape, V-Ray, Elefront) and restart Rhino, does the problem persist?

Still not working…
Okay thanks, i will let you know, if and how i solved it.

Hi Ludwig,

Is your machine part of a corporate network managed by IT people or just a standalone machine managed by you?

it’s a standalone machine, we are a tiny office working with online server at the moment, no IT people, just ourself.

If you simply copy and paste the .3dm and .3dmbak files into the same folder, how are the ACL entries for the new files?

i don’t have access to copy the 3dm file. The 3dmbak file works well.

If i give myself access manually via properties, i can copy it and it keeps the access - but after opening the file and save it, it’s gone again.

Please create a new .3dm file which won’t overwrite anything and copy and paste that.

if i create a new file → save as → close rhino → still access & working
if i copy that file → still access & working
if i open & press save/ Ctrl+S → access gone

Thanks, that’s helpful.

Is your computer in a domain or a workgroup?

workgroup