특수 파일을 작성하고 마법 쿠키를 작성 해야하는 정기적으로 컴파일 된 응용 프로그램을 작성 중입니다. 응용 프로그램에서 직접 파일을 쓸 수 없으므로 시스템 보안 모델을 사용하려면 높은 권한으로 도우미 도구를 시작하여 트릭을 수행해야합니다. 도우미 도구에 여러 가지 인수를 제공 할 수 있습니다. 이제 도우미 도구 역할을하고 파일을 만들 수있는 매우 간단한 시스템 명령을 선택하고 싶습니다. 이 같은:
/bin/sh -c "/bin/echo -n 'magic' > /some/where/file"
간단한은 touch
내가 파일에 쿠키, 간단한 쓸 필요로 잘라하지 않습니다 echo
이 파일을 작성하는 리디렉션을 필요로 작동하지 않는 래퍼 쉘 않고 있습니다. 그런 사소한 작업을 수행하기 위해 루트 권한으로 쉘을 호출하는 것이 불편합니다. 파일을 작성하기 위해 호출 할 수있는 정말 간단하고 제한된 시스템 명령이 있습니까?
tee
. 감사!
/bin/sh -c 'echo magic > /path/to/magic/file'
작동하지 않는 이유 가 있습니까? 그것은 실행 파일과 두 개의 인수입니다. 마지막 인수를 문자열 (sprintf 또는 이와 동등한 형식)로 작성해야합니다. 이것이 효과가없는 이유가 있습니까? 귀하의 질문에서 doCommandAsRoot ()가 명령으로 스트림을 입력하지 않는 것처럼 들립니다. 맞습니까? 그렇지 않으면 마지막 인수를 대체하고'cat > /path/to/magic/file'
문자열을 생성하는 대신 데이터를 전달할 수 있습니다.