왜 파이프를 깎을 수 없나요? [폐쇄]

왜 파이프를 깎을 수 없나요? [폐쇄]

에 대한 토론에서고양이의 쓸모없는 사용.

나는 파이프의 소유자를 바꾸면 문제를 피할 수 있는지 알아보기로 결정했습니다. 그래서 나는 이렇게 했습니다:

# cat | cat &
[1] 16500
# cd /proc/16500/fd
# ls -l
lr-x------ root root 0 -> pipe:[931613]
lrwx------ root root 1 -> /dev/tty1
lrwx------ root root 2 -> /dev/tty1
# chown --dereference daemon 0
# ls -l
lr-x------ root root 0 -> pipe:[931613]
lrwx------ root root 1 -> /dev/tty1
lrwx------ root root 2 -> /dev/tty1

나도 그거 해봤는데 chownchown -L갔어. 나는 이것이 불가능하다고 확신합니다. 그런데 왜 그럴까요? 분명히 인덱스 노드가 있습니다. 931613은 아이노드 번호이다.

정말로 관심이 있는 경우 오른쪽 프로세스는 더 낮은 권한으로 실행되며 프로세스를 다시 열 수 있도록 자체 핸들을 갖고 싶습니다.

답변1

내가 주문을 엉망으로 만든 것으로 밝혀졌습니다 ls.

# ls -lL
lr-x------ daemon root 0 -> pipe:[931613]
lrwx------ root   root 1 -> /dev/tty1
lrwx------ root   root 2 -> /dev/tty1

이것은 오타가 아닙니다. 이는 정확히 한 문자로 수정된 논리 오류였습니다. 당신은 나를 본다알다이러한 노드는 실제 심볼릭 링크가 아닙니다. chroot 감옥에서 열리더라도 이를 열면 올바른 파일이 생성되어 출력에 잘못된 경로가 생성되기 때문입니다 ls -l. 어떻게 든 커널 시스템 호출이 실제로 반환되는 것보다 기본 inode의 더 많은 속성을 반환한다고 생각합니다.

관련 정보