2017-01-13 5 views
1

/proc/[pid]/fd/*에 의존하는 (네트워킹) inode를 찾는 프로그램 (https://github.com/raboof/connbeat)이 있습니다.풀 루트 액세스없이/proc/<pid>/fd/<fd>을 읽으십시오.

/proc/[pid]/fd은 루트 사용자 만 읽을 수 있지만 보안을 위해 가능한 한 많은 권한을 부여하고 싶습니다.

전체 루트 권한없이 프로세스와 inode 간의 관계를 (효율적으로) 얻을 수있는 방법이 있습니까? 아마도 기능을 사용하기 위해 선택적으로 액세스 권한을 부여 할 수있는 시스템 호출일까요?

답변

1

당신이 필요로하는 모든 프로세스의 FD 년대 읽을 수 있도록 : -은/proc/[PID]/FD

  • CAP_SYS_PTRACE에 액세스 -

    • CAP_DAC_READ_SEARCH을 심볼릭 링크를 읽을은/proc/[PID에서 ]/fd/*

    이 두 기능 만 사용하도록 프로그램을 제한 할 수 있습니다. 그런 다음 readdir() 또는 readlink()과 같은 일반적인 API 호출을 사용하여 문제의 정보에 액세스하거나 원하는 정보를 이용할 수 있습니다.

    이 두 기능에 대한 자세한 설명은 capabilities(7)

    을 참조하십시오.