NamedpipeclientStream Erhalten Sie eine Erlaubnis, die verweigert wurde, obwohl ich die FIFO -Datei als Dateistrom ohne Linux

Linux verstehen
Anonymous
 NamedpipeclientStream Erhalten Sie eine Erlaubnis, die verweigert wurde, obwohl ich die FIFO -Datei als Dateistrom ohne

Post by Anonymous »

Ich habe einen Prozess unter Linux, der eine benannte Pipe (FIFO -Datei) erstellt und dann eine DOTNET -App ausführt, die versucht, mit der benannten Pipe namedPipeClientStream -Klasse aus zu lesen.

Code: Select all

stat myNamedPipe.ext
File: myNamedPipe.ext
Size: 0               Blocks: 0          IO Block: 4096   fifo
Device: 802h/2050d      Inode: 117564614   Links: 1
Access: (0640/prw-r-----)  Uid: (10037/    A-user)   Gid: (10038/    b-user)
Context: system_u:object_r:home_root_t:s0
Access: 2025-03-03 18:52:38.393875788 +0000
Modify: 2025-03-03 18:52:38.393875788 +0000
Change: 2025-03-03 18:52:38.393875788 +0000
Birth: 2025-03-03 18:52:38.393875788 +0000
dotnet wird dann über dotnet myNamedpipereader.dll -ausgeführt und unter dem B -Benutzer account
ausgeführt (ich habe bestätigt, dass mit PS -Aux | Grep Dotnet und auch ps -u -b -br -f -öser -user -Ps -. Zusammenfassend

[*] Die FIFO-Datei hat die Berechtigungen 0640/prw-r ----- Für den Benutzer B-Benutzer
Dotnet führt mein Programm als B-Benutzer aus.Failed to connect to named pipe '/full/path/to/MyNamedPipe.ext'.
System.Net.Sockets.SocketException (13): Permission denied /full/path/to/MyNamedPipe.ext
< /code>
Hier ist der Code, den ich verwende, um eine Verbindung zum benannten Pipe zu herstellen.using var namedPipeClientStream = new NamedPipeClientStream(".", pipeName, PipeDirection.In);
namedPipeClientStream.Connect(); //throws here
Console.WriteLine($"Connected to {pipeName}");
using var reader = new StreamReader(namedPipeClientStream);
while (reader.ReadLine() is { } line)
{
Console.WriteLine(line);
}
< /code>
Wenn ich jetzt die benannte Pipe wie eine Datei gelesen habe < /p>
using var pipeStream = File.OpenRead(pipeName);
using var reader = new StreamReader(pipeStream);
while (reader.ReadLine() is { } line)
{
Console.WriteLine(line);
}
< /code>
Es funktioniert ohne Ausgabe. < /p>
mache ich hier etwas falsch? Oder ist etwas Besonderer?
Danke!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post