SU에서 호출되지 않은 터미널 명령은 프로세스가 하나의 디렉터리를 제외한 모든 디렉터리에 쓰는 것을 제한합니까?

SU에서 호출되지 않은 터미널 명령은 프로세스가 하나의 디렉터리를 제외한 모든 디렉터리에 쓰는 것을 제한합니까?

우리는 신청서를 가지고 있습니다 testApp. notRestricted애플리케이션을 실행하는 디렉터리에 폴더라는 이름이 있습니다 . 우리는 응용 프로그램이 해당 폴더에만 쓸 수 있도록 파일 시스템에 대한 응용 프로그램의 액세스를 제한하려고 합니다(우리는 응용 프로그램이 일반적으로 읽을 수 있는 모든 곳에서 읽도록 하는 것이 좋습니다). 유닉스에서 이와 같은 작업을 수행하는 방법은 무엇입니까?

답변1

응용 프로그램을 실행하기 위해 특별히 사용자를 만듭니다. 해당 사용자에게 notRestricted해당 디렉터리에 대한 쓰기 권한을 부여하되 다른 디렉터리에는 부여하지 마십시오. 애플리케이션이 어디에서든 읽을 수 있는지 여부는 상관하지 않으므로 더 복잡한 것은 필요하지 않습니다.

응용 프로그램은 여전히 ​​쓰기 가능한 공개 디렉터리에 쓸 수 /tmp있으며 /var/tmp대부분의 설정에서도 마찬가지입니다. 이것이 문제라면 다음을 설정하세요.액세스 제어 목록이러한 디렉토리에서 애플리케이션에 대한 쓰기 권한을 거부합니다(예: Linux).

setfacl -m user:testUser:0 /tmp /var/tmp

사용자 그룹에 애플리케이션이 쓰기를 원하지 않는 일부 디렉토리에 대한 쓰기 권한이 없는지 확인하십시오.

답변2

이것은 젠투의 것입니다모래 상자시스템은 그렇습니다. 특별히 잘 문서화되어 있지 않으며, Gentoo가 아닌 시스템에서 실행하는 것이 얼마나 어려울지는 잘 모르겠지만 가능할 수도 있습니다.

현재 안정 버전을 얻을 수 있습니다여기, etc/sandbox.conf를 확인하여 구성 방법을 확인하세요.

관련 정보