GNU/Linux >> Linux の 問題 >  >> Linux

ユーザーを 1 つのフォルダーに制限し、そのフォルダーの外への移動を許可しない方法

私はこの方法で問題を解決しました:

新しいグループを作成

$ sudo addgroup exchangefiles

chroot ディレクトリを作成

$ sudo mkdir /var/www/GroupFolder/
$ sudo chmod g+rx /var/www/GroupFolder/

グループ書き込み可能なディレクトリを作成

$ sudo mkdir -p /var/www/GroupFolder/files/
$ sudo chmod g+rwx /var/www/GroupFolder/files/

両方を新しいグループに渡します

$ sudo chgrp -R exchangefiles /var/www/GroupFolder/

その後 /etc/ssh/sshd_config に行きました ファイルの末尾に追加:

Match Group exchangefiles
  # Force the connection to use SFTP and chroot to the required directory.
  ForceCommand internal-sftp
  ChrootDirectory /var/www/GroupFolder/
  # Disable tunneling, authentication agent, TCP and X11 forwarding.
  PermitTunnel no
  AllowAgentForwarding no
  AllowTcpForwarding no
  X11Forwarding no

次に、オバマの名前を持つ新しいユーザーをグループに追加します:

$ sudo adduser --ingroup exchangefiles obama

これですべてが完了したので、ssh サービスを再起動する必要があります:

$ sudo service ssh restart

注意:ユーザーは file で何もできなくなりました ディレクトリ つまり、彼のファイルはすべてファイル フォルダにある必要があります。


制限は賢明な問題であり、一貫して定義する必要があります。できることは、制限付きシェルを定義することです ユーザーのデフォルト シェルとして .

たとえば、/bin/rksh を設定します。 /etc/profile のユーザーのデフォルト シェルとして、ユーザーの定義済みシェルの代わりに (制限付きの kornshell) .

注: この名前の実行可能ファイルがシステムに存在しない場合は、ハード リンク ln /bin/ksh /bin/rksh を作成します。 および ksh 制限されているかどうかを名前で判断します。

制限付きシェル (たとえば) cd を実行できないようにします コマンド、または / でコマンドを指定する (明示的なパス) 呼び出しで、 PATH の変更を禁止します 、 SHELL 、または ENV 変数、および出力リダイレクトも禁止されています。

できます 定義済みを引き続き提供 (スクリプト実装者の制御下で!) ユーザーが制限のない環境でその特定のスクリプトを実行できるようにするシェル スクリプト。


コマンド chroot ユーザーの制限付きルートを作成できます。この質問は chroot の概念を説明しています

更新:デジタル オーシャンに設置された chroot 監獄を探しています 、その環境に固有の詳細なドキュメントを表示します。必要と思われるものに関連すると思われるいくつかのドキュメントを次に示します。

Ubuntu 12.04 VPS でのテスト用に Chroot 環境を構成する方法

chroot で監禁されたユーザーに制限付きの SSH アクセスを許可する方法

これは、FloHimself が提案したジェイルキットに関連するものです。


Linux
  1. allow および deny ディレクティブを使用してユーザー/グループを制限するように SSH を構成する方法

  2. ファイルを検索して 1 つの zip ファイルに圧縮する方法

  3. Linux でファイルとディレクトリを親フォルダーに移動するにはどうすればよいですか?

  1. ユーザーがUbuntuLinuxでsudoを使用できるようにする方法

  2. SSH ユーザーが SSH トンネリングのみを許可するように制限するには?

  3. 2 つの文字を含み、そのうちの 1 つが c であるファイル名を表示するにはどうすればよいですか?

  1. RockyLinuxおよびCentOSでSudoユーザーを作成する方法

  2. 同じコンピュータ上のあるユーザーアカウントから別のユーザーアカウントにファイルを移動する方法は?

  3. NextCloud をバックアップして別のサーバーに移動する方法