병뚜껑 교체

병뚜껑 교체

/proc/sys/kernel/cap-bound우리 시스템 중 하나는 시스템 기능을 제한하기 위해 오래된 캡핑 메커니즘(수정)을 사용하는 오래된 Linux 커널을 사용합니다 . 이는 부팅 시 파일을 통해 rc.linux수행됩니다 .

바라보다http://man7.org/linux/man-pages/man7/capability.7.html

우리는 커널을 업데이트하고 있으며 이 기능은 더 이상 존재하지 않으며 지금까지 새 커널에서 이 기능을 에뮬레이트하는 방법을 찾을 수 없었습니다.

그렇다면 캡핑 메커니즘에 대한 대안은 무엇입니까?

답변1

매뉴얼에서:

       P'(ambient)     = (file is privileged) ? 0 : P(ambient)

프로세스가 상위 프로세스로부터 권한을 얻는 것이 가능합니다.

       P'(permitted)   = (P(inheritable) & F(inheritable)) |
                         (F(permitted) & cap_bset) | P'(ambient)

상속 가능한 집합에 이러한 권한이 있거나 cap_bset에 이러한 권한이 있는 경우 프로세스가 파일에서 권한을 얻을 수 있습니다.

       P'(effective)   = F(effective) ? P'(permitted) : P'(ambient)

       P'(inheritable) = P(inheritable)    [i.e., unchanged]

부모로부터 상속 세트를 가져옵니다.

   where:

       P         denotes the value of a thread capability set before the
                 execve(2)

       P'        denotes the value of a thread capability set after the
                 execve(2)

       F         denotes a file capability set

       cap_bset  is the value of the capability bounding set (described
                 below).


   Note that the bounding set masks the file permitted capabilities, but
   not the inheritable capabilities.  If a thread maintains a capability
   in its inheritable set that is not in its bounding set, then it can
   still gain that capability in its permitted set by executing a file
   that has the capability in its inheritable set.

inheritable컬렉션에서도 제거 해야 합니다.

따라서 루트 프로세스( )에서 권한을 제거합니다. init, 및 에서 권한을 제거합니다.cap_bsetinheritablepermittedeffective

관련 정보