특정 프로세스에서 폴더 집합을 쓰는 것을 방지하는 방법은 무엇입니까?

특정 프로세스에서 폴더 집합을 쓰는 것을 방지하는 방법은 무엇입니까?

폴더 집합이 특정 프로세스에 대한 쓰기 액세스를 허용하지 않는 방법을 원합니다. 예를 들어, YUM/RPM이 /usr/bin에 쓰는 것을 허용하지 않는 방법이 있었으면 좋겠습니다.

답변1

당신은 할 수chroot소프트웨어를 다음으로 변환바인드 마운트이러한 디렉터리를 읽기 전용으로 마운트하도록 설정하십시오.

mkdir /foo
mount --bind / /foo
mount --rbind /dev /foo/dev
mount --bind /proc /foo/proc
mount --bind /run /foo/run
mount -t tmpfs tmpfs /foo/tmp
mount --bind /sys /foo/sys
mount --bind /usr/bin /foo/usr/bin
mount -o remount,ro /foo/usr/bin
chroot /foo rpm …

루트로 실행되는 악의적인 프로세스는 chroot를 벗어날 수 있으므로 이는 보안 제한이 아니라 악의적이지 않은 프로세스가 쓰지 말아야 할 곳에 쓰지 않도록 하는 방법일 뿐입니다.

또 다른 방법은 설정하는 것입니다.SELinux규칙. 이는 루트로 실행되는 프로세스도 제한하므로 올바르게 설정하면(중요하며 파일 액세스 차단 이상의 기능이 필요함) 안전한 제한이 될 수 있습니다.

프로세스가 루트로 실행되고 있지 않은 경우 디렉터리에 대한 권한으로 사용자가 거기에 쓸 수 없도록 허용하는지 확인하세요. 당신은 그것을 사용할 수 있습니다전방십자인대특정 사용자를 제외합니다.

setfacl -m user:alice:0 /some/dir

/some/dir사용자가 접근할 수 없게 렌더링 alice하거나

setfacl -R -m user:alice:rX /some/dir

해당 파일과 그 아래의 파일을 읽을 수는 있지만 쓸 수는 없도록 만듭니다.

관련 정보