바이너리 애플리케이션이 사용하는 디렉토리를 다른 디렉토리로 스푸핑 / 조롱하는 방법은 무엇입니까?


9

항상 데이터를에 쓰는 이진 응용 프로그램이 있다고 가정합니다 /tmp.

/tmp이 바이너리를 위해 다른 디렉토리 (예 :)로 스푸핑 / 모의 를 어떻게 할 수 home/tmp있습니까?

이 바이너리를 수정하여 다른 디렉토리를 사용하도록 할 방법이 없다고 가정 해 봅시다.

답변:


11

chroot환경 에서 응용 프로그램을 실행할 수 있습니다. 즉 /응용 프로그램이 실제가 아니라는 것을 알 수 /있습니다. 완전히 새로운 파일 시스템 계층을 생성하고 --bind필요한 모든 것을 마운트 ( )합니다. 관련 요점은 : 당신은 진짜를 장착 할 수 있습니다 ~/tmp받는 /tmpchroot환경을 제공합니다.

chroot(수퍼 유저 권한이 필요한) 사용 대신 Linux 컨테이너 ( lxc) 와 거의 같은 작업을 수행 할 수 있습니다 . 익숙 lxc하지는 않지만 호스트 시스템에 대한 일반적인 사용자 프로세스이므로 컨테이너 내에서 이러한 구성을위한 수퍼 유저 일 필요는 없습니다.


대단한 대답, 나는이 일을 할 수 chroot있거나 lxc할 수있는 것에 대해 듣지 못했습니다 . 또한 수퍼 유저가되지 않고이를 달성 할 수있는 방법이 있다는 것을 아는 것도 좋습니다.
Nobilis 2016 년

3
@Nobilis 98이 훌륭한 답변으로 인식하기 위해 누락 upvotes ...
Hauke ​​Laging

2
그, 그러나 조심 chroot(당신의 전체를 교체하는 추가 설정이 필요 /단지를, /tmp모든 액세스하므로, /etc, /var, 등이, 또한 "감옥"내부 될 것입니다) 자체 (이하 "수감"프로그램의 보안 문제를 생성 할 수있다 가짜를 설정할 때 권한에주의를 기울이지 않으면 일반적으로 제한이 아닌 파일 시스템의 일부를 조작 할 수 있습니다 /.
IMSoP 2016 년

@IMSoP "일반적으로 제한을 벗어난 파일 시스템의 일부를 조작 할 수있을 것"을보다 자세하게 설명 하시겠습니까?
Hauke ​​Laging 2016 년

@HaukeLaging 새 파일 /이로만 작성되도록 제한되지 않은 경우 root"jailed"사용자는 /etc/passwd; 그러면 외부에서 불가능한 권한 에스컬레이션에 사용할 수 있습니다 chroot. 일반적으로 chroot나머지 파일 시스템을 숨기는 데 사용되는 많은 Linux FTP 서버는 이제 루트가 아닌 사용자가 디렉토리를 쓸 수 있으면 거부합니다.
IMSoP

8

대부분의 POSIX 호환 소프트웨어는 TMPDIR 환경 변수를 존중합니다.

env TMPDIR=~/mytmp  /path/to/application
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.