sudoを使用せずにnginxログを別のユーザーと共有する方法は?


10

私のサーバーには2人のユーザーがいます。sudoを使用するものと使用しないもの。nginxログへのアクセスを許可するにはどうすればよいですか

/var/log/nginx/error.log

sudo使用許可のない別のユーザーにcat /var/log/nginx/error.log?/ home / usernameディレクトリにログインするためのシンボリックリンクのようなものを作成できますか?

だから私の質問は- sudo許可なしにユーザーがnginxログをどのようにチェックできるのですか?


sudo何へのアクセス?あなたの質問からは明らかではありません。「sudoアクセス」を「rootアクセス」を意味する人がいることは知っていますが、技術的に正確ではありません。エラボレートしてください。
dawud 2014年

1
ええ、あなたはsudoそれをどのように設定したいかに応じて、実際に彼に許可を与えるために使用できます。
gparent、2014年

ACLを使用できます。例えばsetfacl -m 'user:someuser:r' /var/log/nginx/error.log。logrotateでそれがどのように機能するかはわかりません。sudo猫/テールへのアクセスは/ etcログは、おそらくより良いオプションのanyway.`ある
グレッグ・クッパ

@GregBowser IMHO、ACLを理解せずにACLを使用することは、問題のレシピです。
ポール

回答:


16

たとえば、次のようになります。

chmod 755 /var/log/nginx && chmod 644 /var/log/nginx/*.log && chmod 644 /var/log/nginx/*.gz

これにより、誰でも/ var / log / nginxディレクトリのコンテンツをcwdして読み取り、*。logファイルを読み取ることができます。

また、ログのローテーション構成を確認して、権限が再度変更されないようにする必要があります。Nginxの最後のいくつかのバージョン(1.6.2まで)では、ログをローテーションするときに、ファイル/etc/logrotate.d/nginxはこの行create 0640 www-data admを使用してアクセス許可を設定しました。これはのように変更する必要がありますcreate 0644 www-data adm。このソリューションでは、サーバー上のすべてのユーザーがすべてのNginxログを読み取ることができることに注意してください。

更新: logrotate configsも更新して、su www-data adm不正なディレクトリ権限について文句を言わずにlogadmユーティリティが機能できるようにする必要があります。


3
のデフォルトのNginx構成は/etc/logrotate.d/nginxですcreate 0640 www-data adm。それは1.6.2にありますが、そのラインがかなりの時間で変更されたとは思いません。
ポール

1
この回答は、ubuntu-nginx-1.6.2-20141110固有ではなく、普遍的で汎用的なものになるように書かれています。
drookie 2014年

1
logrotate dのnginx configがリセットしていました。変更して修正しました。
sdkks 2017

これを解決する他の方法はありません。たとえば、別のユーザーが別のログパスを使用するnginxを起動しようとした場合などです。新しいnginx.confファイルに追加しようとしましたが、この新しいユーザーでnginx -c newnginx.confを実行すると、/ var / log / nginxにアクセスしようとします...
Poul
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.