제한된 쉘을 사용하여 Linux 사용자가 할 수있는 것을 제한하는 방법

Mar 25, 2025
리눅스
[삼]
Fatmawati Achmad Zaenuri / Shutterstock.

사용자 계정이 리눅스에서 할 수있는 제한된 쉘 제한. 제한된 사용자는 디렉토리를 변경할 수 없습니다, 당신은에 액세스 할 수있는 명령을 제어. 여기에 리눅스에 제한된 쉘을 설정하는 방법입니다.

제한된 쉘

제한된 쉘은 다른 쉘이 아니다. 그것은 다른 모드입니다 표준 쉘 ...에 NS 세게 때리다 , , 생선 및 기타 쉘은 모든 제한된 쉘 모드에서 시작할 수 있습니다. 우리는이 문서에서 Bash를 이용한있을거야,하지만 같은 원칙은 다른 조개에 적용됩니다.

제한된 쉘 표준 쉘을 사용하는 또 다른 방법입니다 때문에, 그들은 쉽게 설정할 수 있습니다. 이 설치 아무것도 없다, 리눅스는 어디서든 사용할 수있어.

제한된 쉘도 스크립트에 적용 할 수 있습니다. 그들이 잘못 기록 된 한 경우가 일으킬 수있는 피해가 제한된 세계의 범위로 제한되어 있고 그들이 당신의 전체 컴퓨터에 액세스 할 수없는 것을 보장한다.

제한된 쉘을 완전히 탈출 증거를되지 않습니다,하지만,주의하십시오. 충분한 지식을 가진 사람이 제한된 쉘을 피할 수 있습니다. 그들은 캐주얼 사용자에 안전 경계를 착용하는있는 거 좋은,하지만 생산 시스템에 어떤 실제 보안을 위해 제한된 쉘에 의존하지 않습니다.

관련된: 배쉬, zsh을, 그리고 다른 리눅스 쉘의 차이는 무엇입니까?

제한된 배쉬

당신이 제한된 셸 배쉬를 실행하면, 사용자는 그들로부터 제거 몇 가지 기능이 있습니다. 즉, 사용자 할 수 없다 :

  • 사용하다 CD 작업 디렉토리를 변경합니다.
  • 의 값을 변경 $ Path. , $ SHELL , $ BASH_ENV , 또는 $ ENV 환경 변수 (그러나 그들은 현재 값을 읽을 수 있습니다).
  • 읽기 또는 변경 $의 SHELLOPTS 환경 옵션을 쉘.
  • 명령의 출력을 리디렉션합니다.
  • 를 찾을 경로를 필요로하는 명령 호출. 즉, 하나 이상의 슬래시 "이 명령을 발행 할 수 없습니다 ...에 / "그것입니다.
  • 부르다 간부 쉘에 대해 서로 다른 과정을 대체합니다.
  • 스크립트에서 제한된 기능 중 하나를 사용합니다.

당신은을 사용하여 제한된 bash 쉘을 호출 할 수 있습니다 -NS (제한) 옵션을 선택합니다. 작업 디렉토리를 변경하는 등의 간단한 작업을하려고하는 것은 금지되어 있습니다. 간결한 메시지가 있음을 알려줍니다 CD 제한됩니다.

 떠들썩한 파티 -r 
 CD 문헌 

이 대신 "rbash"사용하여 호출되었을 때 배쉬 쉘도 감지 할 수 있습니다 "bash는." 이것은 너무 제한된 쉘로 시작됩니다. 이것은 우리가 곧 사용합니다 특정 사용자의 기본 쉘을 설정하는 편리한 방법을 제공합니다.

우리가 사용하는 경우 어디에 을 찾기 위해 우분투 명령 rbash 파일, 우리는 실행 파일이 "USR / 빈"디렉토리에있는 것을 볼 수 있습니다. 남자 페이지 "는 / usr / share / 사람 / man1에"디렉토리에 있습니다.

그를 사용하여 LS 그 새 명령 -엘 (긴) 옵션 것을 알 수 rbash ~이다 실제로 심볼릭 링크 에게 세게 때리다 ...에

 whereis rbash 
 LS -l / USR / 빈 / rbash 

에 Manjaro 페도라의 rbash 심볼릭 링크가 생성되어야했다. 이 두 배포판에서 작동합니다 :

 whereis rbash 
는 sudo LN -s / 빈 / 떠들썩한 파티 / 빈 / rbash 
 whereis rbash 

우리가를 사용하는 두 번째 시간 어디에 명령, 그것은 발견 rbash 은 "은 / usr / bin에"디렉토리한다.

사용자 제한

하자 새 사용자 계정을 만들 "미니."라는 우리는을 사용하여 제한된 쉘을 할 자신의 쉘을 설정합니다 -NS (쉘)의 옵션을 useradd와 명령. 우리도 우리가 될 것입니다 계정 암호를 설정하십시오 그를 사용하여 passwd. 명령을 사용하면 홈 폴더를 만들 것입니다.

NS -NS (부모)의 국기 마스크 명령은 말한다 마스크 대상 디렉토리와 생성 해야하는 상위 디렉토리를 만들려면됩니다. 따라서 "/ home / minnie / bin"디렉토리를 만들어 동시에 "/ home / minnie"디렉토리를 만듭니다.

 sudo useradd minnie -s / bin / rbash 
 sudo passwd minnie 
 sudo mkdir -p / home / minnie / bin 

Minnie가 로그인하면 그녀는 제한된 쉘에서 실행됩니다.

 CD 

그녀는 앞으로 슬래시를 포함 해야하는 명령을 호출 할 수 없습니다 " ...에 / ":

 / usr / bin / ping 

그러나 그녀는 여전히 경로에서 발견되는 명령을 실행할 수 있습니다.

그것은 당신이 기대했던 행동이 아니며 확실히 우리가 원하는 것이 아닙니다. 제한 사항을 더 강화하기 위해 Minnie의 쉘이 명령을 찾는 데 사용할 경로를 변경해야합니다.

제한을 조이십시오

Minnie의 홈 디렉토리 "/ home / minnie"를 만들었을 때 "/ home / minnie / bin"디렉토리도 만들었습니다. 이 디렉토리가 재생되는 곳입니다.

Minnie의 ".bash_profile"파일을 편집하고 해당 디렉토리 만 지적하도록 경로를 설정합니다. 또한 루트 만 편집 할 수 있도록 MINIE의 ".bash_profile"파일을 제한합니다. 즉, 다른 사용자가 해당 파일을 편집하고 경로를 변경할 수 있음을 의미합니다.

 sudo gedit /home/minnie/.bash_profile

기존 "경로 ="을 편집하거나 다음 줄을 추가하십시오.

 PATH = $ HOME / BIN 

파일을 저장하십시오. 잘 파일의 소유자를 변경하십시오 루트를 사용하여 쇼 타로 명령 및 파일 사용 권한을 변경하십시오 그를 사용하여 chmod. 명령. 루트 사용자 만 파일을 편집 할 수 있습니다.

 sudo chown root : root /home/minnie/.bash_profile
 sudo chmod 755 /home/minnie/.bash_profile
 ls -l /home/minnie/.bash_profile

다음 번에 사용자 미니가 로그인하면 경로가 하나의 폴더를 가리 킵니다.

당사의 제한된 사용자 Minnie는 Bash 내장 명령 만 사용할 수 있습니다. 에코 , 별명 , 그리고 로그 아웃 ...에 그녀는 또한 사용할 수 없습니다 Ls. ...에!

 LS 

우리가 우리가 모든 것을 유용하게 할 수 있도록하기를 원한다면 우리의 매력을 조금 줄일 필요가 있습니다. Minnie의 "bin"디렉토리에서 미니니를 사용할 명령을 원하는 명령으로 만들 수 있습니다.

 sudo ln -s / bin / ls / home / minnie / bin 
 sudo ln -s / bin / top / home / minnie / bin 
 sudo ln -s / bin / 가동 시간 / home / minnie / bin 
 sudo ln -s / bin / pinky / home / minnie / bin 

Minnie가 다음 로그인하면 Bash Bath-in 명령과 연결된 명령을 사용할 수 있음을 알 수 있습니다.

 LS 
 핑키 데이브 
 가동 시간 

기존 사용자를 제한합니다

우리는 Minnie를 새로운 사용자로 만들었습니다. NS 기존의 껍질을 변경하십시오 사용자, 우리는 그를 사용할 수 있습니다 -NS (쉘) 옵션의 옵션 usermod. 명령.

 sudo usermod -s / bin / rbash mary 

당신은 그를 사용할 수 있습니다 더 적은 "/ etc / passwd"파일의 명령을 사용하여 쉘이 사용자의 기본 셸로 설정된 것을 신속하게 확인하십시오.

 / etc / passwd 

우리는 사용자 메리가 다음 로그인 할 때 사용자 메리가 제한된 쉘을 사용할 것을 볼 수 있습니다.

다른 변경 사항을 적용하여 제한을 위해 제한해야합니다 $ Path. 환경 변수 및 사용자가 Mary를 실행할 수있는 명령을 설정합니다.

스크립트 제한

일반적인 사용자가 제한된 쉘에서 실행되는 스크립트를 시작할 수 있습니다. 다음 행을 복사하여 편집기에 붙여 넣으십시오. 파일을 "Restricted.sh"로 저장하고 편집기를 닫습니다.

 #! / bin / bash.

# 스크립트는 일반 bash 쉘에서 시작됩니다
echo "## 무제한 모드에서! ##"

에코
echo "현재 디렉토리 :`pwd`"
에코 "디렉토리 변경"
CD / USR / Share.
echo "지금 디렉토리 :`pwd`"
echo "홈 디렉토리로 변경"
CD ~
echo "지금 디렉토리 :`pwd`"

# 제한된 모드 설정
-r.

에코
echo "## 제한 모드에서! ##"

에코
echo "현재 디렉토리 :`pwd`"
echo "디렉토리 변경 / home /"
CD / Home.
에코 "아직 디렉토리 :`pwd`"

에코
echo "다른 쉘을 시작하려고 시도"
/ bin / bash.

에코
echo "명령 출력을 재 지정하려고"
ls -l $ home & gt; my_files.txt.
cat my_files.txt.
에코

0 번 출구 0 

우리는 그를 사용해야합니다 chmod. 그 새 명령 + X. (실행) 스크립트를 실행 파일로 만드는 플래그.

 chmod + x restricted.sh 

스크립트의 첫 번째 부분은 일반 셸에서 실행됩니다.

 ./ restricted.sh 

스크립트의 두 번째 부분 - 제한된 쉘에서 "set -r"라인이 실행 된 후 비트입니다.

스크립트의 제한된 부분에서 시도 된 동작 중 누구도 성공하지 못합니다.

추가하여 제한된 쉘에서 전체 스크립트를 만들 수 있습니다. -NS 첫 번째 줄에 :

! # / bin / bash -r 

Houdini를 기억하십시오

제한된 쉘은 유용하지만 완전히 틀리지는 않습니다. 충분히 숙련 된 사용자가 이탈 수 있습니다. 그러나 현명하게 사용될 때, 그들은 특정 계정에 대한 한계를 수립하는 유용한 방법입니다.


리눅스 - 가장 인기있는 기사

사용자가 Linux에서 암호를 변경하도록 강요하는 방법

리눅스 Nov 4, 2024

[삼] 일리아 Titchev / 셔터 주식 암호는 계정 보안에 키스톤입니다. 우리는 암호, 설정 암호 만료 기간을 재설정하고 리눅�..


Mac에서 모든 데스크탑 아이콘을 숨기는 방법

리눅스 Jun 23, 2025

[삼] Krisda / Shutterstock. Mac 데스크탑이 엉망입니까? 모든 것을 정말로 조직하고 싶지 않아? 걱정하지 마십시오. 터미널 명�..


개발자와 열광자를 위해 2021 년 최고의 리눅스 노트북

리눅스 Sep 27, 2025

[삼] Tomeqs / Shutterstock.com. 2021 년 Linux 노트북에서 찾는 것 거의 모든 노트북을 살 수 있습니다 Linux를 설치하�..


Linux 턴 30 : 취미 프로젝트가 세계를 정복했는지

리눅스 Sep 17, 2025

[삼] 래리 슈와 김프 에 1991 년 9 월 17 일 Linus Torvalds는 처음으로 Linux 커널 (버전 0.01)을 출시했습니다. 작은 취미 �..


리눅스에서 어떻게 실행 안드로이드 앱

리눅스 Oct 19, 2025

[삼] quietbits / shutterstock.com Linux에서 Android 앱을 실행하고 있지만 다리지, 개발 환경 또는 Sideloading Apps를 디버깅하고 싶지 ..


What’s New in Ubuntu 21.10 ‘Impish Indri’

리눅스 Oct 14, 2025

[삼] 공란의 Ubuntu 21.10 "Impish Indri" ~였다 출시 된 2021 년 10 월 14 일, IT 특징 그놈 40. , 새 커널 및 업데이트 �..


포트 번호로 리눅스 프로세스를 죽이는 방법

리눅스 Oct 4, 2025

Linux 프로세스를 죽이려면 ID 또는 이름이 필요합니다. 당신이 아는 것은 그것이 사용하는 포트라면, 당신은 여전히 그것을 죽일 수 있습니까? 예, ..


PIDOF 또는 PGREP로 Linux 프로세스의 PID를 찾는 방법

리눅스 Nov 15, 2024

Linux 프로세스로 작업한다는 것은 종종 프로세스 ID 또는 PID를 아는 것을 의미합니다. 각 실행중인 소프트웨어에 제공되는 고유 한 번호입니다. 다..


카테고리