나는 매우 제한된 권한으로 명령줄에서 프로세스를 시작할 수 있기를 원합니다. 기본적으로 사용자 영역에 있는 항목에 액세스하지 않고도 이해할 수 없는 프로세스를 실행할 수 있기를 원합니다. 예를 들어, 지나치게 방해가 되는 설치 프로그램을 작성하는 경향이 있는 동료로부터 패키지를 받았다면 다음과 같이 할 수 있습니다.
> subdo make
make
상위 디렉토리를 건드리지 않고 실행됩니다 . 유닉스에도 그런 기능이 있나요?
답변1
가장 쉬운 방법은 계정을 사용하는 것입니다 nobody
.
sudo -u nobody make
nobody
누구나 쓸 수 있는 파일을 제외한 어떤 것에도 쓸 수 있는 권한이 있어서는 안 됩니다.
답변2
상위 디렉토리를 건드릴 수 없도록 make를 실행합니다.
이것은 기본적으로 chroot를 설명합니다.
그러나 chroot를 수행하면 프로세스는 새 루트 디렉터리 아래의 폴더를 제외한 어떤 항목에도 액세스할 수 없습니다. 예를 들어, 프로세스가 e.g.에서 일부 프로그램을 실행해야 하거나 /usr/bin
e.g.에서 일부 공유 라이브러리를 로드해야 하는 경우 /usr/lib
해당 프로그램을 실제로 새 루트 디렉터리에 복사하지 않으면 이를 수행할 수 없습니다. 실제로 실행하려는 프로그램에 따라 다릅니다.
다양한 프로그램에 대한 많은 튜토리얼을 찾을 수 있습니다. 예를 들어 다음은 샘플 BIND chroot 튜토리얼입니다:
답변3
전략 생성:
systrace -A -d /etc/systrace/make.policy/ \
-E /var/log/systrace_make.log make
선호하는 텍스트 편집기를 사용하여 전략을 편집하세요.
vi /etc/systrace/make.policy/
이후 시작 프로세스에는 다음과 같은 제한 사항이 있습니다.
systrace -a -d /etc/systrace/make.policy/ \
-E /var/log/systrace_make.log make
내 다른 것도 확인해봐답변 sshd와 함께 systrace 사용 정보