Mac OS X에서 sudo 없이 dtrace를 활성화하시겠습니까?

Mac OS X에서 sudo 없이 dtrace를 활성화하시겠습니까?

사용자가 Mac OS X에서 dtrace를 사용할 수 있도록 하려면 어떻게 해야 합니까? Linux에서 strace와 동등한 작업을 수행하려고 하는데 높은 권한으로 응용 프로그램을 실행하는 것을 좋아하지 않습니다.

업데이트

좋아, 내가 말할 수 있는 최선은. 악의적인 응용 프로그램이 시스템을 망치지 않도록 디버깅하는 유일한 방법은 디버깅하는 것입니다.

  1. 별도의 콘솔에서 프로세스에 연결
  2. sudo를 두 번 사용하세요

하도록 하다:

sudo dtruss sudo -u myusername potentially_harmful_app

나는 이 짧은 프로그램을 통해 이것을 확인했습니다:

#include <iostream>
#include <unistd.h>
int main()
{
  std::cout << "effective euid " << geteuid() << "\n";
}

자세한 내용은 이 토론을 참조하세요.

http://discussions.apple.com/message.jspa?messageID=6430877

답변1

위의 업데이트를 참조하세요. 내가 본 적이 있다면 이것은 나쁜 보안 허점입니다. dtruss를 적절하게 구현하면 호출하는 모든 프로그램의 권한이 삭제됩니다. 시스템에 여러 명의 사용자가 있으면 그 중 한 명이 문제를 일으키고 잘못 작성된 프로그램으로 인해 문제가 발생하게 될 것입니다.

답변2

루트로 chmod 4755 dtrace

실행할 때마다 프로그램은 루트 권한으로 실행됩니다.

답변3

둘 다 가질 수는 없습니다. dtrace는 커널과 통신하려면 루트 권한이 필요하므로 루트 권한(setuid)을 사용하거나 루트로 실행해야 합니다.

관련 정보