홈 디렉터리에서 실행 비활성화

홈 디렉터리에서 실행 비활성화

Linux의 홈 디렉터리에서 파일 실행을 비활성화하는 방법이 있습니까? 내 목표는 악성 스크립트 등으로부터 시스템을 보호하는 것입니다. 물론 chmod를 사용하여 실행 비트와 그 하위 디렉터리를 모두 제거할 수도 있지만 그대로 /home/user변경하기 쉽습니다 . 그래서 , 에서만 실행을 허용 하고 다른 디렉터리에서는 실행을 허용하지 않을 생각이었습니다 . 내 시스템은 데비안 8입니다.user/home/userbin/usr/binusr/sbin

답변1

  1. /home별도의 파티션인 경우 옵션을 사용하여 마운트할 수 있습니다 noexec.

  2. 이렇게 하면 "악성" 스크립트뿐만 아니라 사용자가 작성한 모든 스크립트가 비활성화되므로 사용자를 위한 UNIX 시스템 기능의 대부분이 중단(또는 시도)됩니다. UNIX 사용자의 경우 작업을 완료하기 위해 스크립트를 작성하는 것은 매우 일반적인 일입니다.

  3. bash myscript.sh여전히 스크립트를 작성하고 등 perl myscript.pl을 사용하여 실행하는 것을 막지는 못합니다 .

  4. 사용자에 대해 최소한 의 신뢰도가 없다면 사용자에게 셸을 제공하지 않거나 /bin/rbash./bin/bash

답변2

이를 수행할 수 있는 한 가지 방법은 사용자를 위해 제한된 쉘을 설정하는 것입니다. 예를 들어 다음을 사용합니다.lshell. 당신은 또한 볼 수 있습니다제한된 껍질.

기본적으로 로그인 셸을 으로 설정한 다음 /usr/bin/lshellbash사용자별로 구성하여 /etc/lshell.conf특정 작업만 실행하도록 허용 할 수 있습니다.

그러나 이로 인해 확장 구성 없이 사용자가 사용할 수 있는 대부분의 프로그램이 중단될 수 있습니다. 또한 일부 프로그램이 제한된 셸을 제거하는 데 유용할 수 있는 사용자 정의 명령을 실행할 수 있게 될 수도 있습니다.

따라서 시스템에 올바른 권한이 설정되어 있는 경우( sudo액세스 없이 polkit허용되는 항목도 확인) 시스템의 나머지 부분에 영향을 주지 않고 표준 로그인 셸을 사용할 수 있어야 합니다.

신뢰할 수 없는 사용자가 시스템에 액세스할 수 있다는 것을 아는 또 다른 방법은 매일 전체 시스템의 이미지를 다시 만드는 것입니다. 그러나 대부분의 상황에서는 그다지 실용적이지 않습니다.

관련 정보