권한이 없는 사용자로 실행할 때 meld가 /dev/fd/*에 액세스할 수 없는 가능한 이유는 무엇입니까?

권한이 없는 사용자로 실행할 때 meld가 /dev/fd/*에 액세스할 수 없는 가능한 이유는 무엇입니까?

나는 meld에도 쓰기가 가능해야 한다고 생각합니다. 그러나 ("읽기" 참고)라고 적혀 있습니다 Could not read file. 이는 루트에 그러한 오류가 없기 때문에 루트에서 쓸 수 있음을 의미합니다.

~$ 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'.

왜 이런 행동을 의심하시나요?

스크린샷

맨 위는 권한이 없는 사용자이고 맨 아래는 루트입니다.

스크린샷, 루트

답변1

이는 Meld 창이 이미 열려 있는 경우에 발생합니다. 이 경우 다시 실행하면 meld기존 Meld 프로세스를 사용하려고 시도하지만 해당 프로세스는 /dev/fd교체에 사용된 파일에 액세스할 수 없습니다.

Meld가 "새로운" 프로세스를 사용하고 다른 모든 프로세스를 무시하도록 강제할 수 있는 방법은 없는 것 같습니다.

관련 정보