procfs 없이 실행 중인 프로세스 나열

procfs 없이 실행 중인 프로세스 나열

ps실행 중인 프로세스(예: 또는 사용)를 나열하고 싶지만 topprocfs가 설치되지 않았습니다.

마운트 해제된 procf는 악의적인 사용자가 시스템 정보에 액세스하는 것을 방지하도록 의도적으로 설계되었습니다.

실행 중인 프로세스를 계속 나열할 수 있는 방법이 있습니까? 아니면 불가능합니까?

저는 리눅스 3.16을 사용하고 있습니다.

답변1

procfs를 설치하지 않는 것은 실수처럼 들립니다. 보안이 실제로 향상되지는 않으며 Linux는 /proc설치되도록 설계되었습니다. 특히, 여러분이 발견한 바와 같이, /proc이는 프로세스에 대한 정보를 찾는 방법입니다(Linux에서는 ps아래에 있는 정보를 위한 예쁜 프린터일 뿐입니다 /proc).

특정 애플리케이션에 대한 액세스를 차단해야 할 타당한 이유가 있는 경우 /proc다음을 수행하세요.컨테이너또는네임스페이스. 루트에 마운트 /proc하고 네임스페이스 외부에 보관하세요.

답변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가 전혀 없는 것을 권장하지 않습니다.

관련 정보