Skip to content

docs: Breaking change – NamedPipeServerStream + PipeOptions.CurrentUserOnly tightens Unix socket file permissions to 0600 in .NET 11#53544

Open
Copilot wants to merge 6 commits intomainfrom
copilot/fix-namedpipe-permission-issues
Open

docs: Breaking change – NamedPipeServerStream + PipeOptions.CurrentUserOnly tightens Unix socket file permissions to 0600 in .NET 11#53544
Copilot wants to merge 6 commits intomainfrom
copilot/fix-namedpipe-permission-issues

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 4, 2026

In .NET 11 Preview 4, NamedPipeServerStream with PipeOptions.CurrentUserOnly on Unix now chmods the underlying domain socket to 0600 immediately after bind(). Previously the socket inherited the process umask (0644/0755), with cross-user rejection deferred to connect-time peer-credential checks. Also documents the one-way ratcheting behavior for in-process shared server instances.

Changes

  • New article docs/core/compatibility/core-libraries/11/namedpipeserverstream-unix-permissions.md
    • Previous vs. new behavior with code examples
    • Ratcheting semantics for shared-path NamedPipeServerStream instances
    • Recommended action (remove CurrentUserOnly when cross-user access is intentional, with caveats about umask and directory permissions)
    • Affected constructor overloads via xref links
  • docs/core/compatibility/11.md — added entry under Core .NET libraries
  • docs/core/compatibility/toc.yml — added entry under .NET 11 > Core .NET libraries
  • docs/standard/io/how-to-use-named-pipes-for-network-interprocess-communication.md — added a [!NOTE] callout describing the .NET 11 behavior change for PipeOptions.CurrentUserOnly on Unix, with a link to the breaking change article

Internal previews

📄 File 🔗 Preview link
docs/core/compatibility/11.md docs/core/compatibility/11
docs/core/compatibility/core-libraries/11/namedpipeserverstream-unix-permissions.md docs/core/compatibility/core-libraries/11/namedpipeserverstream-unix-permissions
docs/core/compatibility/toc.yml docs/core/compatibility/toc
docs/standard/io/how-to-use-named-pipes-for-network-interprocess-communication.md docs/standard/io/how-to-use-named-pipes-for-network-interprocess-communication

…et permissions in .NET 11

Agent-Logs-Url: https://github.com/dotnet/docs/sessions/ec7bd413-d926-4f72-959f-6376e84957ae

Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix NamedPipeServerStream Unix socket permissions docs: Breaking change – NamedPipeServerStream + PipeOptions.CurrentUserOnly tightens Unix socket file permissions to 0600 in .NET 11 May 4, 2026
Copilot AI requested a review from gewarren May 4, 2026 19:37
@gewarren gewarren marked this pull request as ready for review May 4, 2026 20:07
@gewarren gewarren requested a review from a team as a code owner May 4, 2026 20:07
Copilot AI review requested due to automatic review settings May 4, 2026 20:07
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR documents a new .NET 11 Preview 4 breaking change for Unix named pipes: NamedPipeServerStream now applies 0600 permissions when you use PipeOptions.CurrentUserOnly. It adds the compatibility article and wires it into the .NET 11 breaking-changes navigation.

Changes:

  • Adds a new core-libraries breaking-change article for Unix socket permission tightening and shared-server ratcheting behavior.
  • Adds the article to the .NET 11 breaking-changes index.
  • Adds the article to the compatibility TOC under Core .NET libraries.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 6 comments.

File Description
docs/core/compatibility/core-libraries/11/namedpipeserverstream-unix-permissions.md New breaking-change article describing the Unix permission change, rationale, guidance, and affected APIs.
docs/core/compatibility/11.md Adds the new breaking-change article to the .NET 11 overview table.
docs/core/compatibility/toc.yml Adds the new article to the compatibility navigation tree.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…Unix permission change note

Agent-Logs-Url: https://github.com/dotnet/docs/sessions/fd1dd68f-55c1-48e9-b156-338a3d6ca39e

Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com>
Copilot AI requested a review from adegeo as a code owner May 4, 2026 20:31
Copilot AI requested a review from gewarren May 4, 2026 20:31
@gewarren gewarren enabled auto-merge (squash) May 4, 2026 20:36
@gewarren gewarren requested a review from cincuranet May 4, 2026 20:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Breaking change]: NamedPipeServerStream with PipeOptions.CurrentUserOnly tightens Unix socket file mode to 0600

3 participants