ログ・ファイルのパーミッションをsudo とかでなんとかしたい

/var/log 以下のファイルを監視しようとすると下記のようにパーミッションの
問題が生じます。
http://www.zabbix.jp/node/2852

もともとあるパーミッションを変更したくないのですが、そういったことは、可能なのでしょうか?
userparameter つかって、頑張るのは可能だと思っていますが、

もともとあるログの読み込みをそのままつかえると便利だと思っています。

可能なのでしょうか?

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

どうしても、元のファイルのパーミッションを変更したくないとい
うことであれば、お勧めしませんが、Zabbixエージェントをrootユ
ーザで起動する方法があります。
設定としては、zabbix_agentd.confのAllowRootを1に設定します。

ただし、リモートコマンドの実行許可をしていたらなおさらなので
すが、そこを経由して悪意のあるスクリプトやプログラムをroot権
限で実行されてしまう危険性があるため、不用意にroot権限での実
行を許さないためにもrootユーザでの起動はお勧めしません。

ユーザー tadashi の写真

さっそくのレスありがとうございました。

言葉足らずですみません。root 権限付与はもちろん嫌なので、 sudo でなんとかならないかなというところです。
ダメなら、userparameter で tail などして対応します。

ユーザー TNK の写真

Zabbixのログ監視の機能を利用するのであれば、システムコールを
利用してファイルの属性や状態などを取得するので、そこにsudoで
割り込むような処理はソースを改変しない限り対応できないと思い
ます。

ユーザー KAZ の写真

tadashiさん

1.1.xの頃はZabbixエージェントの起動ユーザ選べたんですが、1.4.xから選べなくなったような…
なので、1.4.x/1.6.xの頃はソース改造して、監視ができるユーザでZabbixエージェント起動できるようにしてました。
※:昔のことなのでソースのどこを改造したか覚えてないですが…A(^^;

userparameterか、監視シェルを作ってcronで監視シェル動かしてZabbix Senderで投げるかですね…

2014-07-29 17:07 誤字修正:clon -> cron

ユーザー tadashi の写真

KAZさん レスありがとうございました。そういうこともあったんですね。
パーミッションの問題が生じるログについてのベスト・プラクティスは、なんだろうと思っているのですが、
ログのパーミッションを変更するというのが基本みたいですね。
グループ権限で読めるようにするあたりがバランスとれたところでしょうか?

ユーザー KAZ の写真
tadashiさん

グループ権限で読めるようにするあたりがバランスとれたところでしょうか?
じゃないかと…

やらないと思いますが、zabbix-2.2.4/src/libs/zbxnix/daemon.cの下記の「user[7] = "zabbix";」が起動アカウントかな…
※:検証してませんので、お気をつけください、
/******************************************************************************
 *                                                                            *
 * Function: daemon_start                                                     *
 *                                                                            *
 * Purpose: init process as daemon                                            *
 *                                                                            *
 * Parameters: allow_root - allow root permission for application             *
 *                                                                            *
 * Author: Alexei Vladishev                                                   *
 *                                                                            *
 * Comments: it doesn't allow running under 'root' if allow_root is zero      *
 *                                                                            *
 ******************************************************************************/
int	daemon_start(int allow_root)
{
	pid_t			pid;
	struct passwd		*pwd;
	char			user[7] = "zabbix";

	if (0 == allow_root && (0 == getuid() || 0 == getgid()))	/* running as root? */
	{
ユーザー TNK の写真

そこを変更したとしても、元のログファイルのパーミッションがroot
ユーザしか読めないようなログであったりすると、

 ・ログファイルのパーミッションを変更したくない
 ・rootでは起動したくない

という要望は実現できないと思います。

ということで、私もグループに対する読み込み権限のみ付与する方法
を選択しています。

ユーザー KAZ の写真

TNKさん

rootでしか見えないファイルはrootでしか読めないのは当然かと…
先ほど書いたのは業務アカウントでしか読めないログ出力しているときの対応方法の一つでも考えて下さい。
※:rootでも読めないログです。

こうなるとアカウントを合わせるしか見る方法なく、環境によってログの種類や見方が変わるとuserparameterでやるのは面倒だなぁと…

昔の1.4とか1.6とかのころとあるホスティングの運用で使っていた手です。

■追記
元々の話が/var/log以下のファイルを読むという話なんで、rootの権限でのお話でしたよね。
他の話書いて紛らわしかったですね。
すいません。

ユーザー tadashi の写真

とりあえず、グループですが、zabbix にしてしまうというやり方と、zabbix を root のグループに加えるという方法があります。
zabbix を root の group に加えるのがいいかなと思い加えたのですが、どうなんでしょうか? 他のアプリから読むことありそうなので、
便利だと思ったので、root グループはそのままという設定をしました。

ユーザー KAZ の写真

tadashiさん

とある会社のシステムの監視ではzabbixアカウントをrootグループに加えてましたね。
便利なので。A(^^;

ユーザー tadashi の写真

KAZさん root group ならいいですよね。ということで、右にならえします。