ps
실행 중인 프로세스(예: 또는 사용)를 나열하고 싶지만 top
procfs가 설치되지 않았습니다.
마운트 해제된 procf는 악의적인 사용자가 시스템 정보에 액세스하는 것을 방지하도록 의도적으로 설계되었습니다.
실행 중인 프로세스를 계속 나열할 수 있는 방법이 있습니까? 아니면 불가능합니까?
저는 리눅스 3.16을 사용하고 있습니다.
답변1
답변2
ps
모든 정보는 마운트된 procf에서 가져오므로 procf가 없으면 이 정보에 대한 소스가 없습니다. 내가 볼 수 있는 유일한 옵션은 proc을 마운트하여 ps/top을 호출한 다음 마운트 해제하는 것인데, 이는 위험을 최소화합니다.
답변3
마운트 해제된 procf는 악의적인 사용자가 시스템 정보에 액세스하는 것을 방지하도록 의도적으로 설계되었습니다.
procfs를 설치하지 않는 것이 이 목표를 달성할 수 있는 유일한 방법은 아닙니다.
권한이 없는 사용자가 자신의 프로세스만 볼 수 있도록 옵션을 사용하여 procfs를 마운트 할 수 있으며 hidepid=2
, 이는 시스템에 대한 많은 정보를 숨깁니다. 바라보다proc(5)
이 기능에 대한 추가 정보.
procfs에 대한 액세스를 추가로 제한하려면(프로세스에 대한 정보뿐만 아니라 etc.와 같은 파일도 포함하고 이러한 부분을 숨기지 않기 때문에 cpuinfo
) modules
마운트 hidepid
지점에 대해 0711 또는 0700과 같은 제한 모드를 지정할 수 있습니다. . /proc
소유자가 루트인 경우 후자의 경우 루트만 procfs에 액세스할 수 있습니다. 즉 ps
, top
등을 사용하여 htop
확인할 수 있지만 /proc/mdstat
루트로 로그인한 경우에만 가능하고 다른 사용자는 이를 확인할 수 없습니다. 액세스를 시도할 때 "권한 거부" 오류가 발생합니다 /proc
.
또한 많은 프로그램이 설치에 의존하기 때문에( procfs뿐만 아니라 ps
) 시스템에 procfs가 전혀 없는 것을 권장하지 않습니다.