모든 권한이 있는 mkfifo가 여전히 오류가 발생하고 다른 사용자에 대한 권한이 거부되었습니다.

모든 권한이 있는 mkfifo가 여전히 오류가 발생하고 다른 사용자에 대한 권한이 거부되었습니다.

우분투 20.04

fifo 파이프는 사용자의 bash 스크립트를 통해 생성됩니다 A.[[ ! -p $fifopath ]] && mkfifo $fifopath -m0777

이렇게 하면 다음이 생성됩니다.prwxrwxrwx 1 A A 0 May 25 00:40 /tmp/somefifo

그런 다음 사용자가 BFIFO에 쓰려고 하면 권한이 거부됩니다. fifo의 그룹을 사용자 B의 그룹 으로 변경해도 권한이 여전히 거부됩니다. 소유자를 FIFO로 변경하거나 FIFO에 쓸 수 있는 경우에만 B가능 합니다 root.B

18.04 업데이트 후 문제

이 문제를 해결하는 방법에 대한 아이디어가 있습니까?

답변1

이번 패치(우분투 19.10에 도입되었을 수도 있나요?):

전역적으로 쓰기 가능한 고정 디렉터리에서 사용자가 소유하지 않은 FIFO 또는 일반 파일을 여는 것은 소유자가 디렉터리의 소유자와 동일하거나 파일이 O_CREAT 플래그 없이 열리지 않는 한 금지됩니다.

비활성화하기 위해 다음 단계를 수행했습니다.자세한 내용은 여기:

/etc/sysctl.d/protect-links.conf콘텐츠를 사용하여 생성:

fs.protected_fifos = 0

그런 다음 procps를 다시 시작하십시오.

sudo systemctl restart procps.service

관련 정보