/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_bset
inheritable
permitted
effective