Возможные причины, по которым meld не может получить доступ к /dev/fd/* при запуске от имени непривилегированного пользователя?

Возможные причины, по которым meld не может получить доступ к /dev/fd/* при запуске от имени непривилегированного пользователя?

Я подозревал, что meld нужно, чтобы они также были доступны для записи. Однако он говорит Could not read file(обратите внимание на «чтение»); плюс тогда подразумевается, что они доступны для записи для root, потому что для root такой ошибки не было.

~$ diff <(echo foo) <(echo bar)
1c1
< foo
---
> bar

~$ meld <(echo foo) <(echo bar)  # not working, see comment below
~$ sudo -s
~# meld <(echo foo) <(echo bar)  # works just fine

Первый возвращается Could not read fileи [Errno 2] No such file or directory: '/dev/fd/63'.

Как вы думаете, в чем причина такого поведения?

Скриншот

Сверху — непривилегированный пользователь, снизу — root.

Скриншот, корень

решение1

Это происходит, когда окно Meld уже открыто. В этом случае meldповторный запуск пытается использовать существующий процесс Meld; но этот процесс не может получить доступ к /dev/fdфайлам, которые используются для подстановки...

Похоже, что нет возможности заставить Meld использовать «новый» процесс, игнорируя все остальные.

Связанный контент