noexec를 사용하지 않고 폴더 마운트

noexec를 사용하지 않고 폴더 마운트

해당 옵션 없이 단일 폴더를 마운트하는 것이 가능합니까 noexec? 올바르게 실행 하려면 서버의 사용자 홈 폴더에 있는 웹 응용 프로그램을 설치해야 하는 상황이 있습니다. noexec그러나 모든 사용자에 대한 제한을 제거하는 것이 아니라 해당 사용자에 대해서만 제한을 제거하고 싶습니다.

fstab은 다음과 같습니다.

# /dev/sda3       /home           ext3    defaults        0       2
UUID=cae3a489-22c1-43d8-aaf1-27306b32ebb0       /home           ext3    defaults,noexec        0       2

따라서 noexec여기에서 제거하면 모든 사용자가 실행 파일을 실행할 수 있으며 사용자만 실행 파일을 실행할 수 있도록 하는 솔루션이 필요합니다 user.

답변1

당신이 원한다는 뜻이군요제거하다noexec전체 파티션에서 디렉토리를 삭제하지 않고 /home의 디렉토리를 제한하시겠습니까 ? 그렇다면 설치 디렉터리를 바인딩하고 기본 옵션으로 다시 설치하면 효과가 있을 수 있습니다. 하지만 직접 테스트해 보세요. 다음은 EXT4를 사용하여 작동하는 것처럼 보이는 더러운 해킹입니다. 그러나 webapp 디렉토리를 자체 상단에 바인드 마운트할 수 있다면 더 깨끗하고 안전하며 더 나을 수 있습니다. fstab에서 마운트가 완료된 후 셸 스크립트에서 실행해야 합니다.

mount --bind /home/user/webapp /home/user/webapp
mount /home/user/webapp -oremount,defaults

답변2

웹 애플리케이션은 다음에서 실행되어서는 안 됩니다 . 올바르게 실행하려면 /home어떻게 해야 합니까 ? noexec거기에서 아무것도 실행할 필요가 없다면 그렇게 하려고 시도해서는 안 되며, 이 경우 플래그는 전혀 차이가 없습니다.

예를 들어 SELinux 태그를 사용하여 원하는 제한을 적용할 수 있지만 쉽지 않습니다. 또는 파일 ACL 및 권한( 참조)을 사용하여 해당 파일을 실행할 수 있는 사람을 제어할 수 acl(7)있습니다 setfacl(1). "다른 사람"이 그 안에 있는 파일에 전혀 액세스할 필요가 없다면 디렉터리의 권한을 사용하여 액세스할 수 있습니다.

관련 정보