Linuxで質問です。

あるアカウントを作ったのですが、他のアカウントの情報は見れなくさせたく思います。

現状は
/home/test/
の様になってしまい、一階層戻ると、home内のすべてのディレクトリが
見れてしまいます。
これを/home/test/しか見れないようにしたいのです。

SSHでも構いませんが
WebMinの操作方法だと、尚助かります。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/06/01 16:54:12
  • 終了:2011/06/01 20:26:36

回答(4件)

id:Slight_Bright No.1

Slight_Bright回答回数47ベストアンサー獲得回数22011/06/01 16:59:01

ポイント15pt

ん?testユーザーでログインしたときに、/homeで、lsした時に /home/test 以外見えなくしたい、の意?

id:deflation No.2

deflation回答回数1036ベストアンサー獲得回数1262011/06/01 17:20:01

ポイント27pt

chrootコマンドを使って下記のようにすればできます。

chroot /home/test
id:gday No.3

gday回答回数383ベストアンサー獲得回数712011/06/01 17:23:50

ポイント27pt

これも参考になると思います。


sshログインしたユーザのディレクトリを制限するには

http://d.hatena.ne.jp/flageo/20090215/p1

id:JULY No.4

JULY回答回数966ベストアンサー獲得回数2472011/06/01 17:36:41

ポイント31pt

普通の方法では出来ません。

というのは、/home の下にどんなディレクトリやファイルがあるか、というのは、ディレクトリエントリに格納されていて、ディレクトリエントリの内容が読み出せるかどうかは、/home のパーミションで、読み込み権があるかどうかで決まり、ディレクトリエントリ内の個々のデータ、つまり、そのディレクトリ内にあるファイル名・ディレクトリ名に対して、個別のパーミションが設定できるわけではないからです。

但し、自分のホームディレクトリも含めて見えなくする事はできます。

今、CentOS 5.6 上で見たところ、

# ls -l / | grep home
drwxr-xr-x  10 root root    4096  5月 11 20:58 home

となっていました。この場合、

  • root ユーザは読み書き、実行可能
  • 他のユーザは、読み込み、実行可能

という事になります。ディレクトリに対して「実行可能」は、そのディレクトリをカレントディレクトリにする事ができる、という意味になります。

なので、この /home のパーミッションでは、

  • 誰でも /home のディレクトリエントリを読むことができ、かつ、カレントディレクトリとする事が出来る。
  • 但し、/home の下にディレクトリやファイルを作る事が出来るのは root ユーザのみ。

という状態にあることになります。

ここで、

# chmod o-r /home

として、root ユーザ、及び、root グループに属するユーザ以外の読み込み権を取り去ってしまえば、root 以外のユーザからは、

$ cd /home
$ ls -l
ls: .: 許可がありません

と、自分のホームディレクトリも含めて、存在を隠す事はできます。もちろん、この状態でも、自分のホームディレクトリは自由に使えます。

普通の方法では出来ない、と書きましたが、じゃぁ、普通じゃない方法でできるか、となると、具体的な方法は思いつきません。SELinux を有効にして頑張ればできるかもしれませんが、現実的ではないと思います。

...で、そもそも、/home 下にある他人のホームディレクトリ名を見せたくない、というのは、おそらく、そのマシン上にある他のユーザのアカウント名を知られたくない、という意図なんだと思いますが、であれば、単に /home 下のディレクトリ名を見せなくするよりも、他の方が紹介している、chroot 使う方法の方が堅牢だと思います。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません