特定のフォルダーに読み取り専用アクセスを許可しますか?

特定のフォルダーに読み取り専用アクセスを許可しますか?

ユーザーに読み取り専用アクセスを付与したいのですが、アクセスを許可したフォルダのみを表示できるようにしたいのです。たとえば、サーバー全体を移動してすべてのユーザーのフォルダなどを参照することは望ましくありません。たとえ上へ上へ上へと移動することしかできなかったとしても、私が許可した特定のフォルダのみにアクセスできるようにしたいのです。まず、特定のユーザーに特定のフォルダへのアクセスを許可するにはどうすればよいでしょうか。また、ホーム フォルダへのシンボリック リンクを配置すると役立つでしょうか。そうすれば、上や下ではなく、必要なフォルダに直接移動できるようになりますか。

答え1

必要なディレクトリ権限を設定する必要があります。ディレクトリの場合、次のようになります。

  • 読む: そのディレクトリ内のファイルとサブディレクトリを表示することが許可されています
  • 書く: そのディレクトリ内にファイルとサブディレクトリを作成することを許可します
  • 実行する: ディレクトリに入ることが許可されます。

ファイルの場合も状況は同様で、非常に明白なので、自分で処理できます。

これらの権限を数値で指定します:

  • 読む-4
  • 書く-2
  • 実行する-1

権限を編集するには を使用しますchmod。使用法:chmod xyz <file or directory>

  • バツ- 合計所有者権限
  • ええ- 合計オーナーグループ権限
  • - 合計残りのユーザー/グループ権限

例:

$ chmod -R 664 /home/jack/

ジャックとジャックのグループは読み取り+書き込み/home/jackへのアクセスと全てサブディレクトリのみ。残りは読み取りアクセスのみになります。-Rここでのオプションは再帰的に権限を設定します。

その他の例:

$ chmod 700 /home/jack/video/

ジャックにディレクトリへのフルアクセスを許可します。所有者と所有グループの変更については、も/home/jack/video参照してください。chownchgrp

答え2

また、chroot を設定する必要があるとも読みませんでした。親ディレクトリへの移動を防ぐには、厳格な権限を割り当てます。

$ mkdir --parent 1/2/3
$ ls 1
2
$ chmod 100 1
$ ls 1
ls: cannot open directory 1: Permission denied
$ ls 1/2
3

ユーザーに /home/1 へのアクセスを許可したいが、/home 内の他の資料をユーザーが参照できないようにしたい場合は、/home を root 所有にして権限 111 を持たせます。こうすると、ユーザーは /home/2 が存在するかどうかを知ることができなくなります。

関連情報