ユーザーが自分のホームディレクトリ以外にアクセスしないようにするにはどうすればよいですか?


22

ユーザーが自分のホームディレクトリ以外にアクセスしないようにするにはどうすればよいですか?

たとえば、NTFSパーティションがの下/media/ntfsにマウントされているため、ユーザーがsshを介してログインすると、このパーティションに到達できます。ユーザーをcdホームディレクトリから無効にするにはどうすればよいですか?

回答:


22

最初に要件を再評価します。解決しようとしている問題は何ですか?ユーザーがホームディレクトリを離れないようにしたいのはなぜですか?むしろ、他の特定のディレクトリ(他のユーザーのホームディレクトリなど)を調べてほしくありませんか?

ユーザーがホームディレクトリを離れることを防ぐことは非常に困難です。それも実際には少しばかげています(説明が続きます)。ユーザーが入力したくないディレクトリをユーザーが入力できないようにする方がはるかに簡単です。

まず、ユーザーにいわゆる制限付きシェルを提供できますman rbash。これによりcd、他の場所ではなく、そのシェル内でのみ-ingができなくなります。ユーザーが起動したvi場合nano(またはファイルを開くことができる他のプログラム)、システム上の任意の場所で再びファイルを開くことができます。実際のところ、制限されたシェルはを防ぎませんcat /etc/passwd

次のステップはルートジェイルです。詳細はコミュニティのwikiとで、この質問。ルートジェイルは、ユーザーが意図的にそこに置いたファイルとコマンド以外にアクセスできない壁に囲まれた庭園内のユーザーをロックしますが、ルートジェイルはユーザーではなく信頼できないソフトウェアを隔離することを目的としています。特に、それらは昇格された特権で実行する必要があるソフトウェア用です-したがって、ルート刑務所。

一方、ユーザーは信頼されており昇格した権限なしで認証および実行する必要があります。したがって、所有していないファイルを変更したり、表示してはならないものを表示したりしないようにするには、ファイルのアクセス許可で十分です。ユーザーがファイルのコンテンツを読み取れないようにするには、を使用してその世界の読みやすさを削除しますchmod o-r FILE。ユーザーがディレクトリにアクセスできないようにするには、を使用して世界中からアクセスできないようにしchmod o-rwx DIRます。

ただし、正当な理由により、世界の読みやすさがデフォルトです。ユーザーは、実際にはファイルシステムにあるもののほとんどを必要とします。外部に秘密が存在するという理由だけで、自宅でユーザーをロックしないでください。

ユーザーをホームディレクトリにロックするのが少しばかげている理由

役に立つことをするには、ユーザーはコマンドとアプリケーションにアクセスする必要があります。これらのようなディレクトリにある/bin/usr/bin、あなたはそこから自分のホームディレクトリに、彼らが必要とするすべてのコマンドをコピーしない限り、ユーザーはアクセスが必要になります/binし、を/usr/bin。しかし、それは始まりにすぎません。アプリケーションは、からライブラリ必要がある/usr/lib/lib、しているシステムリソースへ順番に必要へのアクセス/dev、および内の構成ファイルにを/etcして/usr/share

これは単なる読み取り専用の部分でした。また、アプリケーションは書き込みを必要/tmpとし、頻繁/varに書き込みます。そのため、ユーザーをホームディレクトリ内に制限する場合は、多くをコピーする必要があります。実際、ほぼすべてのベースファイルシステムです/


2
これは私には意味がありません。ユーザーに1つのフォルダーのみへのアクセスを許可する理由はたくさんあります。1つの例は、1つのサーバーから別のサーバーにファイルを送信するためにアクセスを許可することです。むしろ、すべてのユーザーが代わりにシステム全体を閲覧できるのは少しばかげいると思います。
リチャード

私の場合、デバイスのリモート管理のために、デバイスがマシンにSSHをリバースできるようにユーザーを設定しています。そのため、ユーザーアカウントが侵害された場合に備えて、できる限りそのユーザーアカウントを制限します。接続が成功する必要があります。私はそれがばかげているとは言いません、それはあなたが何を達成しようとしているかに依存します。
ジョン

7

ユーザーsam/var/xyzのみアクセスを提供し、内部の他のフォルダーのコンテンツのリストをブロックする必要がありました/var/

次の一連のコマンドを使用しました。

setfacl -R -m user:sam:--- /var/

setfacl -m user:sam:rx /var/

setfacl -R -m user:sam:rwx /var/xyz/

そのため、ユーザーは下にリストされているディレクトリを表示できますが/var/、サブディレクトリの下のコンテンツは表示できません/var/xyz


2
askubuntuへようこそ!私はこれをホームディレクトリに関して尋ねられた質問への答えとは思わない。
オタク長老

3
@ElderGeek OPは同じコマンドを使用できませんが、ホームディレクトリに使用できますか?
セス

@Sethはい、しかしそれは平均的なユーザーには明らかでしょうか?
オタク長老

3
@長老はい、そうだと思います。完璧ではないが、それでも答え
セス

1

他のディレクトリ、特に他のユーザーのホームディレクトリへのアクセスを制限することに加えてll /home、システム上の他のユーザーの名前をユーザーに見せたり見たりしたくありませんでした。

これを防ぐには、rootとして実行しchmod 701 /homeます。これにより、/homeディレクトリ自体はもちろんルートに対して「読み取り/書き込み/実行」されますが、他のすべてのユーザーに対してのみ「実行」されます。/homeは引き続きアクセスできますcdが、ユーザーはそのコンテンツ(他のユーザーのホームフォルダー、つまりユーザー名)を読み取ることができません。


これは、質問に対する厳密な答えではありませんが、非常に興味深いものです...クライアントがsshできるリモートサーバーを操作する状況では、これは素晴らしいことです。他のクライアントのユーザー名のプライバシーを保持しながら、彼らは期待どおりに動き回ることができます。
Jack_Hu
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.