Python에서 현재 프로세스의 루트 디렉터리 변경하기
Python에서는 os 모듈의 chroot() 함수를 사용하여 현재 실행 중인 프로세스의 루트 디렉터리를 원하는 경로로 변경할 수 있습니다. 다만 이 기능은 Unix 계열 시스템(Linux, macOS 등)에서만 사용 가능하며, Windows 환경에서는 지원되지 않습니다.
기본 사용법
>>> import os
>>> os.chroot('/tmp/my_folder')
위 코드를 실행하면 해당 스크립트가 동작하는 프로세스의 루트 디렉터리가 /tmp/my_folder로 변경됩니다. 이후 이 프로세스 내부에서 /(루트) 경로에 접근하면, 실제 파일시스템의 최상위 디렉터리가 아닌 /tmp/my_folder를 가리키게 됩니다.
사용 시 주의 사항
- 루트(root) 권한 필요: chroot 작업은 시스템 전체에 영향을 주는 강력한 기능이므로, 일반적으로 관리자(superuser) 권한으로 실행해야 합니다.
- 일방향 작업: 한 번 루트 디렉터리를 변경하면 프로세스 내부에서는 이전 디렉터리 구조로 되돌아갈 수 없습니다.
- 보안 격리 목적: chroot는 주로 특정 프로그램을 파일시스템의 나머지 부분과 격리하여 보안을 강화하는 용도(샌드박싱)로 활용됩니다.
- 완전한 보안 솔루션은 아님: chroot만으로는 충분한 격리가 되지 않으므로, 더 강력한 격리가 필요하다면 컨테이너 기술(Docker 등)을 고려하는 것이 좋습니다.