![fakechroot는 보안 결함인가요?](https://rvso.com/image/1642386/fakechroot%EB%8A%94%20%EB%B3%B4%EC%95%88%20%EA%B2%B0%ED%95%A8%EC%9D%B8%EA%B0%80%EC%9A%94%3F%20.png)
나는 최근에 에 대해 더 많이 알게 되었습니다 fakechroot
. AFAIK chroot에 있더라도 사용자 권한을 에스컬레이션하므로 위험해 보입니다. 나는 알고 있지만 fakeroot
루트가 필요한 작업을 수행할 수 없기 때문에 동일하지 않습니다.
그러나 fakechroot
실제로 실행하려면 chroot 내부에 루트 권한이 필요합니다. 그러면 fakechroot
일반 사용자를 사용하면 chroot를 루팅한 다음 호스트에서 루트로 분리될 가능성이 있다는 뜻입니까 ?
사용자 권한을 확대하지 않는 매뉴얼 페이지를 읽었는데 fakechroot
완전히 이해했는지는 모르겠습니다.
답변1
일부 Linux 응용 프로그램은 현재 사용자가 인 경우에만 작동합니다 root
. 이러한 응용 프로그램의 대부분은 Linux 자체 변경과 관련되어 있으므로 일반 사용자로부터 보호됩니다.
root
그러나 때로는 일반 사용자로 작업할 때 특정 목적을 위해 이러한 명령을 일시적으로 사용하기 위해 권한 상승 없이 해당 명령을 실행하고 싶을 때가 있습니다 .
이러한 명령은 현재 사용자로 실행되고 실행 중인 Linux 버전에 실제 영향을 주지 않기 때문에 보안 결함이 아닙니다.
이러한 명령의 가장 좋은 예는 입니다 fakeroot
. 그 기능은 다음과 같습니다~인 척하다실제로 이런 일이 발생하지 않고도 현재 사용자는 입니다 root
.
이를 통해 루트로 실행될 것으로 예상되는 프로그램이 실제로 일반 사용자로 실행되는 동시에 루트가 필요한 작업이 성공한다고 잘못 생각하게 됩니다.
이는 일반적으로 패키지를 빌드할 때 사용됩니다. 따라서 설치되는 패키지의 설치 프로세스가 오류 없이 진행될 수 있습니다. 또는 chown root:root
등 install -o root
이
fakeroot
이러한 파일을 제공하는 것처럼 가장한 가짜 소유권을 기억하므로 후속 작업에서 소유권은 root
실제 소유자가 아닌 소유자로 간주됩니다 .
예를 들어, 후속 tar
실행에서 루트가 소유한 파일을 저장할 수 있습니다. fakeroot
이 경우 루트 및 suid가 소유한 파일을 포함하는 tarball을 만듭니다. 그러나 권한 상승 없이 루트로 수행하지 않는 한 해당 타르볼을 추출하고 해당 권한을 보존할 수 없습니다.
fakeroot
그런 다음 일반 사용자로 빌드를 실행할 수 있으며, 동시에 루트로 실행했을 경우 빌드가 가졌을 효과를 유지하여 나중에 재생할 수 있습니다. "실제로" 효과를 적용하려면 실제 루트 권한이 필요하며, 이에 대한 fakeroot
획득 방법은 제공되지 않습니다.
또 다른 예는가짜 루트.
fakechroot
setuid가 아닌 일반 프로그램입니다. 사용자의 권한을 강화하거나 시스템 보안을 저하시키지 않습니다. 루트 권한 없이 chroot(8) 명령을 사용할 수 있는 환경을 생성하며, 이는 apt
루트 권한 없이 패키지 설치를 호출하는 데 유용합니다. 이런 방식으로 사용자는 시스템의 다른 사람에게 영향을 주지 않고 자신의 작은 버블 내에 루트 환경을 만듭니다.
fakechroot
기능을 제공하지 않으므로 명령 을 통해 fakeroot
호출해야 합니다 . 이 두 명령은 상호 보완적이며 함께 사용되는 경우가 많습니다.fakechroot
fakeroot