ログを表示するために非常に効率的なログインを提供するにはどうすればよいですか?

ログを表示するために非常に効率的なログインを提供するにはどうすればよいですか?

私の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にのみ移動できる単純なシェルです。vicdBC

この情報を使用しているユーザー間でユーザー/パスワードを共有することは大丈夫です。

これを達成するためにどのように提案しますか?可能ですか?

(私たちは現在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/Basのビューと/home/log-viewers-BC/Basのビューを作成します。/var/log/syslog-ng/C/home/log-viewers-BC/C

しかし、1つの.htaccessアプローチも良い選択ですので、リアルタイムアップデートのためのより良いcgiスクリプトセットを見てください。

関連情報