Skip to content

Windows: incorrect ownership #6614

@ttenbrinkzenz

Description

@ttenbrinkzenz

What happened: When creating a directory or file on a Windows-mounted JuiceFS filesystem, the owner is set to S-1-0-65534 (which I believe is the nobody user).

What you expected to happen: The owner to be set as myself.

How to reproduce it (as minimally and precisely as possible):

  • Format a filesystem using local store:
C:\juicefs> juicefs format redis://localhost:6379 store
  • Mount the filesystem
C:\juicefs> juicefs mount redis://localhost:6379 X:
  • Create a directory inside X:\
X:\> mkdir SOMEDIR
  • Observe permissions
X:\> icacls SOMEDIR
SOMEDIR S-1-0-65534:(F)
        S-1-0-65534:(RX,WD,AD,DC,WA)
        Everyone:(Rc,S,REA,RA)

This means it's impossible to enter the directory or create any files.

Anything else we need to know?

Above is the simplest way to reproduce it. I also tried a number of other things:

  • Create the store on WSL (so run juicefs format redis://localhost:6379 store on WSL, then mount on Windows). This has the exact same behavior.
  • Mount the store on WSL (so format and mount on WSL using `juicefs mount redis://localhost:6379 ./store). Then the directory it is mounted to is completely inaccessible from Windows.
\\wsl.localhost\Debian\home\tiptenbrink> ls -l
╭────┬───────────────────────────┬─────────┬─────────────────────────────────────┬──────────┬────────┬─────────────┬────────────────┬──────╮
│  # │           name            │  type   │               target                │ readonly │  size  │   created   │    accessed    │ modi │
│    │                           │         │                                     │          │        │             │                │ fied │
├────┼───────────────────────────┼─────────┼─────────────────────────────────────┼──────────┼────────┼─────────────┼────────────────┼──────┤
...
│    │                           │         │                                     │          │        │             │                │ ago  │
│ 16 │ store-mnt                 │   ❎    │                 ❎                  │    ❎    │   ❎   │     ❎      │       ❎       │  ❎  │
╰────┴───────────────────────────┴─────────┴─────────────────────────────────────┴──────────┴────────┴─────────────┴────────────────┴──────╯
\\wsl.localhost\Debian\home\tiptenbrink> icacls.exe ./store-mnt
./store-mnt: Access is denied.
Successfully processed 0 files; Failed processing 1 files

Note that it functions correctly when only staying within WSL.

This is my Windows user:

USER INFORMATION
----------------

User Name           SID
=================== ====================================================
azuread\tiptenbrink S-<redacted>

My user folder on Windows is TiptenBrink.

  • I tried mounting as Administrator. That gives slightly different permissions:
X:\> icacls newdir2
newdir2 S-1-0-65534:(F)
        S-1-0-65534:(Rc,S,REA,RA)
        Everyone:(Rc,S,REA,RA)
  • I tried mounting as Administrator with --as-root in the foreground.
    This works! Why? Not practical, since it requires always having a foreground process running. Furthermore, foreground as Administrator doesn't seem to allow me to even navigate to the folders as a normal user. It only works if I actually access them while in the Administrator terminal.
  • I tried mounting as Administrator in the background with --as-root.
X:\> icacls newdir4
newdir4 NT AUTHORITY\SYSTEM:(F)
        NT AUTHORITY\SYSTEM:(Rc,S,REA,RA)
        Everyone:(Rc,S,REA,RA)

Successfully processed 1 files; Failed processing 0 files
  • I tried mounting as Administrator in the background.
X:\> icacls newdir5
newdir5 S-1-0-65534:(F)
        S-1-0-65534:(Rc,S,REA,RA)
        Everyone:(Rc,S,REA,RA)

Successfully processed 1 files; Failed processing 0 files
  • I tried mounting as Administrator in the background with --as-root and then use -o umask=000.
X:\> icacls newdir6
newdir6 NT AUTHORITY\SYSTEM:(F)
        NT AUTHORITY\SYSTEM:(RX,WD,AD,DC,WA)
        Everyone:(RX,WD,AD,DC,WA)

Successfully processed 1 files; Failed processing 0 files

Writing and reading works, but then you run into #6092, so not practical.
Environment:

  • JuiceFS version (use juicefs --version) or Hadoop Java SDK version: juicefs version 1.3.0+2025-07-03.30190ca
  • Cloud provider or hardware configuration running JuiceFS: Trying it out on my own work computer, newer Intel x64 system
  • OS (e.g cat /etc/os-release): Microsoft Windows 11 Pro (10.0.26200 Build 26200)
  • Object storage (cloud provider and region, or self maintained): Trying it out with local storage
  • Metadata engine info (version, cloud provider managed or self maintained): Redis 8.4.0, running on WSL as a systemd service (all default settings, just installed with apt)
  • Network connectivity (JuiceFS to metadata engine, JuiceFS to object storage): Metadata engine running on WSL, storage seems identical when either on WSL or on Windows

Metadata

Metadata

Assignees

Labels

kind/bugSomething isn't working

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions