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