私のRHEL 5システムのフォルダにはさまざまなログファイルがあります。
/var/log/syslog-ng/A/
/var/log/syslog-ng/B/
/var/log/syslog-ng/C/
B
特定のユーザーにフォルダやサブディレクトリ内のすべてのファイルを表示または追跡する(変更/削除することはできません)権限を付与したいが、フォルダまたはフォルダ自体C
の内容は付与できないことを望みます。A
/var/log/syslog-ng
tail
私が想像できるのは、唯一のコマンドが、およびであり、cd
フォルダgrep
にのみ移動できる単純なシェルです。vi
cd
B
C
この情報を使用しているユーザー間でユーザー/パスワードを共有することは大丈夫です。
これを達成するためにどのように提案しますか?可能ですか?
(私たちは現在Apache HTTPDによって提供されているbashスクリプトを介してこれを行います。これは、ナビゲートされたパスがBまたはCフォルダの上を通過するときにApache設定のパスワードを要求します。そして生成する以外には何もしません。すべての種類のリアルタイム更新を提供するためにHTMLページのメタリフレッシュに加えて、より良いユーザーエクスペリエンスを提供し、エラーの可能性を減らします。
答え1
これ強く打つシェル入力 a
制限モード(呼び出し時に
rbash
)ユーザーが;changeを使用したり、PATH
現在のディレクトリを変更したりするのを防ぎます。cd
これをUNIXグループが提供するアクセス制御制限と組み合わせて、ユーザーがディレクトリ内のファイルのみを表示できるように制限できます。
私はこれを次のように実装します:
グループの作成
A
などB
- 各グループを読み取ることができます(ただし読み取ることはできません)。書く)そのディレクトリとその中にあるログファイル:$ ls -lF /var/log/syslog-ng drwxr-x--- root A ... A/ drwxr-x--- root B ... B/ [...] $ ls -l /var/log/syslog-ng/A/ -rwxr----- root A ... logfile.log -rwxr----- root A ... logfile.log.1 [...]
/etc/group
ユーザーを変更し、ユーザーが読みたいログに基づいて次のグループに追加します。$ tail /etc/group [...] A: foo B: bar
ログビューアにアクセスできるコマンドをホストするディレクトリを作成します。
/usr/local/restricted/bin
関連コマンドをそのディレクトリにコピーまたはハードリンクします。制限されたユーザーに対して正しい設定が指定されるように変更してください
/etc/profile
。制限されたパスには(または「安全な」制限付きコマンドをホストする他のディレクトリ)のみを含める必要があります。PATH
/usr/local/restricted/bin
/etc/passwd
ユーザーにログインシェルrbash
と関連/var/log/syslog-ng/XXX
ディレクトリがホームとして提供されていることを変更して確認してください。これでログインできますが、ホームディレクトリに制限され、制限されたパスでのみコマンドを使用できます。
メモ:ユーザーが次のことを実行できるようにコマンドにアクセスすると、制限モードシェルを簡単にバイパスできます。 実装するPERLやほぼすべてのエディタなど、すべてのコマンド。
答え2
NFSやSambaなどのネットワークプロトコルを介してエクスポートできます/var/log/syslog-ng/B
。/var/log/syslog-ng/C
scp専用のシェルを使用してユーザーを作成できます。スポリまたはRSSH。このユーザーのホームディレクトリを/home/log-viewers-BC
.Useに設定します。ファイルシステムバインディング/var/log/syslog-ng/B
asのビューと/home/log-viewers-BC/B
asのビューを作成します。/var/log/syslog-ng/C
/home/log-viewers-BC/C
しかし、1つの.htaccess
アプローチも良い選択ですので、リアルタイムアップデートのためのより良いcgiスクリプトセットを見てください。