update-grub 명령을 실행하려고 하면 매우 이상한 출력이 표시됩니다.
update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.9.0-6-amd64
Found initrd image: /boot/initrd.img-4.9.0-6-amd64
Found linux image: /boot/vmlinuz-4.9.0-4-amd64
Found initrd image: /boot/initrd.img-4.9.0-4-amd64
File descriptor 7 (pipe:[33660]) leaked on lvs invocation. Parent PID 7587: /bin/sh
done
이 문제를 해결해야 해요. 이와 같은 메시지가 나타나는 원인은 무엇입니까?
답변1
update-grub
이러한 경고는 코드 와 바이너리 lvs
사이에 "정돈되지 않은" 부분이 있음을 지적합니다 . lvs
즉, 표준 파일 설명자(0, 1, 2)가 아닌 열린 파일 설명자(7)가 상속됩니다. 모든 설명자를 즉시 닫고 경고를 인쇄합니다( LVM_SUPPRESS_FD_WARNINGS
환경 변수를 통해 억제할 수 있음). 하위 프로세스가 불필요하게 파일 설명자를 상속하도록 허용하는 것은 취약성을 악용할 수 있는 문을 열어주기 때문에 나쁜 코딩 관행입니다. 따라서 이 경우에는 보안(또는 정확성)에 영향이 없을지라도 여기서는 확실히 고쳐야 할 부분이 있습니다.