우리는 C++ 애플리케이션에 Python 3.x를 임베드하여 유지 보수 및 기타 작업의 스크립팅을 허용하고자합니다. 지금까지 파일 조작을 포함하여 필요한 모든 작업을 수행합니다.임베디드 파이썬의 셸 명령 실행 방지?
문제는 일부 사양 (예 : PCI)을 충족하기 위해 subprocess.call 또는 popen과 같은 쉘 명령을 임의로 실행할 수 없다는 것입니다.
임베디드 파이썬에서 작업하는 것을 막고 유사한 호출을 할 수있는 방법이 있습니까?
AFAIK, 외부 유틸리티 ... os.system, subprocess 및 명령을 호출하는 세 가지 방법이 있습니다. 라이브러리 트리에서'subprocess.py'와'commands.py'를 삭제함으로써 두번째 두가지를 비활성화 할 수있는 것처럼 보입니다. 'os'로, 당신은 os 모듈에'del system'을 추가 할 수있을 것입니다 ... 편집 할 필요가있는 다른 장소/것들이있을 수 있지만, 적어도 이것은 시작입니다 ... – mgilson
임의의 생각 , 위의 내용을 추가하기 위해, 당신이 사용하지 않을 명령을 다른 경로로 옮기거나 python을 루트가 아닌 명령 폴더에 대한 액세스 권한이없는 제한된 사용자로 실행 시키십시오. 내가 기억한다면 모든 명령은/bin/sin/usr/bin// usr/local/bin /에 있습니다. – Pradheep
@Pradheep 명령은 어디에서나 사용할 수 있습니다. 'PATH'를 존재하지 않는 것으로 설정할 수 있지만 사용자는 절대 경로를 사용하여 명령을 호출 할 수 있습니다. 특정 사용자가 폴더에 액세스 할 수 없다고 말할 수있는 방법은 없습니다. –