제한 셸

Restricted shell

제한 셸은 Unix 쉘로, 이 셸 내에서 실행되는 대화형 사용자 세션 또는 스크립트에서 사용할 수 있는 일부 기능을 제한합니다.보안 레이어를 추가하는 것을 목적으로 하고 있지만 완전히 신뢰할 수 없는 소프트웨어를 실행할 수 있는 것은 아닙니다.원래 Bourne[1] 쉘과 그 이후의 셸에서 제한 모드 동작이 발견됩니다.Bash,[2] 그리고 [3]KornShell에.경우에 따라서는 시스템 전체에 대한 접근을 제한하기 위해 chroot 감옥과 함께 제한된 셸이 사용됩니다.

호출

Bourne sh의 제한 모드와 그 POSIX 동작은 인터프리터가 다음 중 하나의 방법으로 호출될 때 사용됩니다.

  • sh -r 이는 일부 sh variant의 "read" 옵션과 충돌합니다.
  • rsh 이는 일부 시스템에서는 rsh라고도 불리는 remote shell 명령어와 경합할 수 있습니다.

Bash 제한 모드는 다음 중 하나의 방법으로 Bash가 호출될 때 사용됩니다.

  • rbash
  • bash -r
  • bash --restricted

마찬가지로 KornShell의 제한 모드는 다음과 같이 실행함으로써 생성됩니다.

  • rksh
  • ksh -r

rbash 설정

일부 시스템(CentOS 등)에서는 rbash를 통한 호출이 기본적으로 활성화되지 않으며 직접 호출하면 오류가 발생하거나 /etc/passwd 파일이 /bin/rbash를 사용자 셸로 나타내면 로그인에 실패합니다.

bash를 직접 가리키는 rbash라는 이름의 링크를 작성하면 됩니다.이로 인해 Bash가 직접 호출되지만 옵션 또는 옵션을 사용하지 않으면 Bash는 rbash를 통해 호출된 것을 인식하고 제한된 셸로 표시됩니다.

이것은 다음의 간단한 명령어(루트로 실행, 사용자 루트로 로그인 또는 sudo 사용)로 실행할 수 있습니다.

root@host:~# cd /bin root@host:/bin# ln bash rbash

제한된 조작

제한된 셸에서는 다음 작업이 허용되지 않습니다.

  • 디렉토리 변경
  • 절대 경로 이름 또는 슬래시를 포함하는 이름 지정
  • PATH 또는 SHEL 변수 설정
  • 출력 리다이렉트

Bash에는 다음과 [2]같은 제한이 추가됩니다.

  • 함수 정의에 대한 제한
  • Bash 빌트인에서 슬래시된 파일 이름 사용에 대한 제한 사항

제한된 KornShell의 제한은 제한된 Bourne [4]쉘의 제한과 거의 동일합니다.

제한 셸의 약점

제한된 셸은 안전하지 않습니다.사용자는 셸 기능을 갖춘 프로그램을 실행함으로써 제한된 환경에서 벗어날 수 있습니다.다음으로 제한된 셸에서 탈출하기 위해 vi에서 사용되는 셸 기능의 예를 나타냅니다.

user@host:최대 $vi
:세트 껍데기=/bin/ :껍데기 

또는 PATH 내에 있는 경우 제한되지 않는 새로운 셸을 기동하는 것만으로 다음과 같이 할 수 있습니다.

user@host:~$rbashuser@host:~$ cd / rbash: cd: 제한된 user@host:~$bash user@host:~$ cd / user@host:/$

프로그램 목록

통상적인 셸의 제한 모드 외에 특수한 제한 셸 프로그램에는 다음이 포함됩니다.

  • rssh– OpenSSH에서 사용되며 특정 파일 복사 프로그램(scp, sftp, rsync, cvs, rdist)만 허용
  • smrsh명령어를 제한합니다.sendmail호출할[5] 수 있다

「 」를 참조해 주세요.

레퍼런스

  1. ^ POSIX sh 사양
  2. ^ a b GNU Bash 매뉴얼
  3. ^ ksh 매뉴얼, Solaris (SunOS 5.10) 매뉴얼 페이지, Oracle Inc.
  4. ^ ksh(1) 수동 페이지, IBM AIX 설명서 세트
  5. ^ Costales, Bryan; Assmann, Claus; Jansen, George; Shapiro, Gregory Neil (2007). Sendmail. Oreilly Series (4 ed.). O'Reilly Media, Inc. p. 379. ISBN 9780596510299. Retrieved 2012-08-02. As an aid in preventing [...] attacks, V8.1 sendmail first offered the smrsh (sendmail restricted shell) program.