Linux 시스템에서 특정 사용자 그룹에 대한 구성 프로세스를 숨길 수 있습니까?
예: 그룹 X의 사용자는 ps/top 또는 /proc에서 그룹 Y의 사용자가 소유한 프로세스를 볼 수 없습니다.
SELinux를 사용하여 이러한 설정을 구성할 수 있습니까?
(유사한 기능을 가진 흥미로운 grsecurity 패치 세트가 막연하게 기억나지만 IIRC는 더 일반적이며 사용자 정의 커널을 유지 관리할 필요 없이 기본 Linux 배포판을 구성하고 싶었습니다.)
편집하다:더 잘 설명하자면,솔라리스 10에도 비슷한 기능이 있습니다. 이 예는 그다지 일반적이지는 않지만 ps 등에서 자신의 프로세스에 대한 정보만 볼 수 있도록 사용자 또는 특정 사용자를 구성하는 것이 가능합니다.
답변1
실제로 SELinux는허용될 것 같습니다그런구성:
처음부터어떻게:
이번에는 해당 프로세스가 위치한 도메인에 관계없이 시스템의 모든 프로세스를 볼 수 있습니다. sysadm_t 도메인에 있는 동안 user_t 도메인이 액세스할 수 없는 다른 도메인에 액세스할 수 있습니다.
두 번째부터 시작하세요어떻게:
세 번째 줄에서는 Staff_t가 권한이 없는 사용자 도메인에서 ps를 실행하고 프로세스를 볼 수 있도록 허용합니다. Staff_t는 ps를 실행하고 user_t 및 기타 사용자 도메인(있는 경우)의 모든 내용을 볼 수 있지만 user_t는 그렇지 않습니다.
답변2
루트킷이 없거나 특별히 이 동작을 허용하도록 해킹된 커널이 없으면 사전 패키지된 옵션이 없습니다.
이러한 프로세스가 액세스 권한이 있는 코드에서 시작되면 프로그램에 전달된 argv[0] 인수를 변경하면서 이를 다시 컴파일할 수 있습니다. 이는 이름을 좋은 이름으로 효과적으로 변경하여 top 또는 ps 등을 확인하는 사람으로부터 "숨겨집니다".