ユーザーを1つのフォルダーに制限し、ユーザーが自分のフォルダーから移動できないようにする方法


28

私はデジタルオーシャンにubuntuサーバーを持っていますが、私のサーバー上のドメイン用のフォルダーを誰かに与えたいのですが、私の問題は、そのユーザーが私のフォルダーやファイルを見たり、そのフォルダーを移動したくないことです。

フォルダ内のこのユーザーを制限して、他のファイルやディレクトリを移動したり表示したりできないようにするにはどうすればよいですか?


そのために、個別のユーザーアカウントを使用することもできます。
マーティン・フォン・ウィッティヒ

それともJailkit
FloHimself

私は彼が彼のフォルダ外に移動することができます前に、私が使用した私のサーバー内のすべてのフォルダのためにそれを使用することはできませんので、chmodのは良い解決策ではありません
バドル

実際に私はグループを知らなかったので、グループについて何も知らない。
悪い

もう一つの方法- serverfault.com/questions/497011/...
slm

回答:


26

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

新しいグループを作成する

$ 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ディレクトリ から何もできなくなります。つまり、彼のファイルはすべてファイルフォルダーになければなりません。


1
ユーザーを切り替えたがsudo su - obama、それでも他のファイルを見ることができる@badr
alper

11

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

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

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

制限されたシェルは、(例えば)こと防止するcdコマンドを、またはしてコマンドを指定する/呼び出しで(明示的なパス)、それは変更不許可PATHSHELLまたはENV変数を、出力リダイレクションも禁止されています。

あなたはできるまだ提供事前定義(スクリプトの実装者の管理下に!)、ユーザーが無制限の環境で、特定のスクリプトを(複数可)を実行することを可能にするユーザーにシェルスクリプトを。


この答えは、chroot環境をセットアップするよりもはるかに簡単になるので、私はそれを支持しました。
アズレイ

5

このコマンドをchroot使用すると、ユーザーの制限付きルートを作成できます。この質問では、その概念chrootと使用方法について説明します。

更新:デジタルオーシャンに設定されたchroot jailを検索すると、その環境に固有のドキュメントがさらに表示されます。ここに、あなたが必要かもしれないものに関連していると思うカップルがあります。

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

chroot jailedユーザーへの制限付きSSHアクセスを許可する方法

以下は、FloHim自身が提案したjailkit関連するものです。


はい、彼らはそれを説明するが、彼らは、私はいくつかの称賛と試みたが、それを使用する方法を説明しなかった私は何を得る:chroot環境:「/ binに/ bashの」runコマンドに失敗しました:そのようなファイルまたはディレクトリ
バドル

1
確かに、chroot刑務所について聞いたことがあります。さらに調査を行うことができます。デジタルオーシャンに関するドキュメントへのリンクで回答を更新しました。
X天
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.