Код: Выделить всё
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
(я подтвердил, что с помощью ps aux | grep dotnet и я также запустил PS -U b -user , который также возвращает мой процесс Dottnet , и я также запустил PS -U b -user , который также возвращает мой Dot Dotnet) и я также запустил ps -us user , который также возвращает мой dot dotnet и я также выполнял ps -us user . Суммируйте
[*] fifo-файл имеет разрешения 0640/prw-r ----- для пользователя b-user
Dotnet запускает мою программу как B-пользователь.Failed to connect to named pipe '/full/path/to/MyNamedPipe.ext'.
System.Net.Sockets.SocketException (13): Permission denied /full/path/to/MyNamedPipe.ext
< /code>
Вот код, который я использую для подключения к названной трубе < /p>
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>
Теперь, если я просто прочитаю именованную трубу как файл < /p>
using var pipeStream = File.OpenRead(pipeName);
using var reader = new StreamReader(pipeStream);
while (reader.ReadLine() is { } line)
{
Console.WriteLine(line);
}
< /code>
это работает без проблем. < /p>
Я делаю что -то не так? Или есть что -то более своеобразное происходящее?
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/794 ... en-the-fif
Мобильная версия