どのように使用制限付きシェルを制限するために、何のLinuxユーザはド

Mar 25, 2025
Linux
Fatmawati Achmad Zaenuri / Shutterstock

制限されたシェルは、ユーザーアカウントがLinuxでできることを制限します。制限されたユーザーが自分のディレクトリを変更することはできず、アクセスしているコマンドを制御します。 Linux上で制限されたシェルを設定する方法は次のとおりです。

制限された貝殻

制限されたシェルは異なるシェルではありません。それは異なるモードです 標準のシェル 。 NS バッシュ カーン その他のシェルはすべて制限シェルモードで起動できます。私たちはこの記事でBashを使っていますが、他のシェルにも同じ原則が適用されます。

制限されたシェルはあなたの標準シェルを使用するもう1つの方法であるので、それらは設定が簡単です。インストールするものは何もありません、そしてそれらはLinuxがどこにあるのか利用可能です。

制限されたシェルもスクリプトに適用できます。それは彼らが書かれていないならば、彼らが誤って書かれているならば、それらが制限された世界の範囲に限られているかもしれないこと、そして彼らがあなたのコンピュータ全体にアクセスできないということを保証します。

ただし、制限されたシェルは完全に脱出の証明ではないことに注意してください。十分な知識を持つ人は、制限されたシェルを脱出することができます。彼らはカジュアルなユーザーに安全な境界を置くのに最適ですが、生産システムの実際のセキュリティのために制限されたシェルに頼らないでください。

関連している: Bash、ZSH、およびその他のLinuxシェルの違いは何ですか?

制限付きバッシュ

制限されたシェルとしてBASHを実行すると、ユーザーにはそれらからいくつかの機能が削除されます。具体的には、ユーザー できません

  • 使用する CD 作業ディレクトリを変更するには。
  • の値を変更してください $ path. $シェル $ bash_env. 、 また $ env. 環境変数(現在の値を読み取ることができます)。
  • 読みや変更 $ shellopts シェル環境オプション
  • コマンドの出力をリダイレクトします。
  • パスを見つけるためのパスを必要とするコマンドを呼び出します。つまり、1つ以上のスラッシュを持つコマンドを発行することはできません。 / / " 初期化。
  • inv exec. シェルの異なるプロセスを置換するには。
  • スクリプト内の制限された機能のいずれかを使用してください。

使用して制限付きバッシュシェルを呼び出すことができます。 -NS (制限付き)オプション。作業ディレクトリを変更するような単純なタスクを禁止しようとしています。 TERSEメッセージがあなたにそれを伝えます CD 制限されています。

 Bash -R 
 CD文書

BASHシェルは、「Bash」の代わりに「RBASH」を使用して呼び出されたときに検出することもできます。これにより、制限シェルとして起動します。これは特定のユーザーのデフォルトシェルを設定する便利な方法で、すぐに使用します。

を使ったら 或いは Ubuntuのコマンドを探す r r ファイル、実行可能ファイルは "usr / bin"ディレクトリにあることがわかります。マニュアルページは、「/ usr / share / man / man1」ディレクトリに入っています。

の使い方 LS. でコマンド (長い)オプションはそれを明らかにします r r 実際にシンボリックリンク バッシュ

 rbash 
 LS -L / USR / BIN / RBASH 

ManjaroとFedora、The r r シンボリックリンクを作成する必要がありました。これは両方の分布で動作します。

 rbash 
 SUDO LN -S / BIN / BASH / BIN / RBASH 
 rbash 

2回目を使っています 或いは コマンド、それは見つけます r r "/ usr / bin"ディレクトリに。

ユーザーを制限する

let 新しいユーザーアカウントを作成します 「ミニー」という名前。シェルを使用して制限シェルになるように設定します -NS の(シェル)オプション useradd. 指図。また アカウントのパスワードを設定します の使い方 亡くなる コマンド、そしてそれらのためのホームフォルダを作成します。

NS -NS (両親)の国旗 m m コマンド m m ターゲットディレクトリと作成する必要がある親ディレクトリを作成するには。そのため、 "/ home / minnie / bin"ディレクトリを作成することで、「/ home / minnie」ディレクトリを同時に作成します。

 sudo useraddミニー/ビン/ rbash 
 SUDO PASSWDミノー
 sudo mkdir -p / home / minnie / bin 

ミニーがログインするとき、彼女は制限されたシェルで実行されます。

 CD 

スラッシュを含める必要があるコマンドを呼び出すことはできません」 / /

 / usr / bin / ping 

ただし、パスにあるコマンドを実行できます。

 Ping 

それはあなたが予想したかもしれない行動ではなく、それは確かに私たちが望むものではありません。制限をさらに厳しくするために、Minnieのシェルがコマンドを探すために使用するパスを変更する必要があります。

制限を締めます

Minnieのホームディレクトリ "/ home / minnie"を作成したときに、 "/ home / minnie / bin"ディレクトリも作成しました。そのディレクトリが再生される場所です。

Minnieの ".bash_profile"ファイルを編集して、そのディレクトリを指すようにするために彼女のパスを設定します。また、rootだけを編集できるように、Minnieの ".bash_profile"ファイルも制限します。つまり、他のユーザーがそのファイルを編集して彼女のパスを変更できることを意味します。

 sudo gedit /home/minnie/.bash_profile

既存の "path ="を編集するか、次の行を追加します。

パス= $ home / bin 

ファイルを保存してください。良い ファイルの所有者を変更します を使って根へ 養う 命令する ファイル権限を変更します の使い方 chmod. 指図。 rootユーザーだけがファイルを編集できるようになります。

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

次回のユーザーミニーがログインすると、彼女のパスは単一のフォルダを指します。

私たちの制限されたユーザーミニーは、のようなBash組み込みコマンドしか使用できません。 エコー エイリアス 、 と ログアウト 。彼女はさえも使えない LS.

 LS 

私たちが彼らに何も役に立つことができるようにしたいのであれば、私たちの斜面を少しゆっくりと緩める必要があります。 Minnieの "bin"ディレクトリからミニーを使用できるコマンドへのシンボリックリンクをいくつか作成します。

 SUDO LN -S / BIN / LS / HOME / MINNIE / BIN 
 SUDO LN -S / BIN /トップ/ホーム/ミニー/ビン
 SUDO LN -S / BIN /稼働時間/ home / minnie / bin 
 SUDO LN -S / BIN / PINKY /ホーム/ミネー/ビン

Minnie Nextログインしているとき、彼女はBash組み込みコマンドを使用することができ、それにリンクされているコマンドを使用できることを見つけます。

 LS 
 Pinky Dave 
 uptime 

既存のユーザーを制限します

私たちは新しいユーザーとしてミノーを作成しました。に 既存のシェルを変更します ユーザー、私たちはを使うことができます -NS の(シェル)オプション 身元 指図。

 SUDO USERMOD -S / BIN / RBASH MARY 

あなたはを使うことができます 以下 "/ etc / passwd"ファイルのコマンドで、どのシェルがユーザーのデフォルトシェルとして設定されているのかをすばやく確認します。

 / etc / passwd 

次のログイン時にユーザーメアリーが制限されたシェルを使用することがわかります。

それらを制限するために他の変更を適用することを忘れないでください $ path. 環境変数と、ユーザーMaryを実行できるようにするコマンドを設定します。

スクリプトを制限する

通常の無制限のユーザーは、制限されたシェルで実行されるスクリプトを起動できます。次の行をコピーしてエディタに貼り付けます。ファイルを「RESTELITED.SH」として保存してエディタを閉じます。

#!/ bin / bash.

#スクリプトは通常のBash Shellで始まり​​ます
エコー "##制限されていないモードで!##"

エコー
エコー "現在のディレクトリ:` pwd` "
エコー「ディレクトリの変更」
CD / usr /株式
「ディレクトリにある: `pwd`」
エコー「ホームディレクトリへの変更」
CD~.
「ディレクトリにある: `pwd`」

#制限モードを設定します
セット-r.

エコー
"##制限モードで" ## "##"

エコー
エコー "現在のディレクトリ:` pwd` "
エコー「ディレクトリの/ home / home /」を変更する
CD /ホーム
エコー「まだディレクトリ: `pwd`」

エコー
エコー「別のシェルを始めることを試みる」
/ bin / bash.

エコー
エコー「コマンド出力をリダイレクトしようとしている」
ls -l $ home&gt。 my_files.txt.
cat my_files.txt.
エコー

終了0 

私たちはを使う必要があります chmod. でコマンド + x. (実行)スクリプトを実行可能にするためのフラグ。

 CHMOD + X拘束されている

スクリプトの最初の部分は通常のシェルで実行されます。

 ./ RESTILED.SH 

スクリプトの2番目の部分 - 「set -r」回線の後のビットは、制限されたシェルで実行されます。

スクリプトの制限部分には、試行されたアクションのどれも成功しません。

追加すると、スクリプト全体を制限シェルで実行することができます。 -NS 最初の行に:

!#/ bin / bash -r 

Houdiniを覚えています

制限されたシェルは便利ですが、完全に絶対に絶対にありません。十分に熟練したユーザーがそれらを脱出することができるかもしれません。しかし、慎重に使用されるとき、それらは特定のアカウントに対して一連の制限事項を確立するための便利な方法です。


Linux - 最も人気のある記事

Linuxでゾンビプロセスを殺す方法

Linux Nov 25, 2024

Fatmawati Achmad Zaenuri / Shutterstock 不十分なプログラムや不良を悪く行うことができるプログラム ゾンビプロセス L..


コックピットWebインターフェースを使用してLinuxサーバーを管理する方法

Linux Dec 9, 2024

Fatmawati Achmad Zaenuri / Shutterstock コックピット、ブラウザベースの管理およびダッシュボードツールで複数のLinuxコンピュ..


Debian 11 "Bullseye"の新機能

Linux Jul 22, 2025

Debian 他の多くのLinux分布の前駆者は、試験段階で利用可能なリリース11を作りました。あなたはアップグレードの美徳を量りますか�..


Linuxでfsckコマンドを使う方法

Linux Aug 18, 2025

Pixza Studio / Shutterstock 私たちの重要なデータはすべて1つのタイプまたは別のタイプまたは別のファイルシステムで座っ�..


アップルシリコンでM1 MacにLinuxをインストールする方法

Linux Nov 11, 2024

Appleの新しいARMベースのアーキテクチャのネイティブLinuxサポートはまだ準備ができていませんが、Linuxをオンにして実行できます。 M1 ..


LinuxでDNSをフラッシュする方法

Linux Nov 14, 2024

Linuxデバイスでは、インターネットブラウジングの経験が遅いですか、それとも訪問しているWebサイトは時代遅れですか、それとも間違ったWeb�..


Ubuntuで静的IPアドレスを設定する方法

Linux Oct 17, 2025

ホームネットワークは、デバイス間のデータをルーティングするためのIPアドレスに依存しており、ネットワークに再接続すると、デバイスの�..


LinuxバッシュスクリプトでパブリックIPを取得する方法

Linux Nov 9, 2024

コンピューターにリモートで接続する場合は、外部IPアドレスが必要になります。 手動でそれを見つけるのは簡単ですが、Linuxスクリプト内か�..


カテゴリ