
最近、Stretchシステムを更新してsystemdバージョン232-25 + deb9u6を提供しました。
非常に迷惑な副作用は、私の/var/log/auth.logが次のように満たされていることです。
Nov 30 07:13:34 rpi2-2 sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Nov 30 07:13:34 rpi2-2 su[29165]: Successful su for root by root
Nov 30 07:13:34 rpi2-2 su[29165]: + ??? root:root
Nov 30 07:13:34 rpi2-2 su[29165]: pam_unix(su:session): session opened for user root by (uid=0)
Nov 30 07:13:34 rpi2-2 su[29165]: pam_systemd(su:session): Cannot create session: Already running in a session
Nov 30 07:13:34 rpi2-2 su[29165]: pam_unix(su:session): session closed for user root
Nov 30 07:13:34 rpi2-2 sudo: pam_unix(sudo:session): session closed for user root
Nov 30 07:13:35 rpi2-2 sudo: pi : TTY=unknown ; PWD=/home/pi ; USER=root ; COMMAND=/bin/su - -c echo 1 > /sys/class/backlight/rpi_backlight/bl_power
この問題は、最新バージョンのsystemdで修正されているようです(参照:https://github.com/systemd/systemd/pull/10832)しかし、そのバージョンを自分で作成することはできません。
1秒に2回 "su"を実行してauth.logがルートパーティションをすばやく埋めるようにするいくつかのコードがあるため、これは驚くべき問題です。
Raspbian Stretch用の最新のシステムバイナリ、またはこの問題のない古いバージョンをどのように入手できますか?
答え1
実際、ここにはいくつかの質問があり、各質問に答えます。ここでの解決策は、su
Stephen Kittがコメントで指摘したとおりに使用していないようです。
他の側面についてもお話します。
ソースからビルドするためにDebianベースのシステムを準備する方法(systemdなど)(最初にサンドボックスシステム(VMなど)でこれを数回実行することをお勧めします)
$ sudo apt-get build-dep systemd
ビルドするバージョンが現在のバージョンよりも最新ではないと仮定すると、依存関係は通常同じです。これはパッチされたsystemdバージョンにも当てはまります。上記のコマンドは、systemd自体を除いてsystemdを構築するために必要なすべてのパッケージを取得します。以下では、最新の最高のシステムを得ることができることに注意してください。すべての前提条件が満たされていることを慎重に確認してください。
その後、ソースコードをインポートしてビルドします。 systemdはgithubにあるので、ソースコードを取得するにはgitが必要です。
$ sudo apt-get install git
$ git clone https://github.com/systemd/systemd.git
ソースコードが構築される正確な方法は、関連するソフトウェア開発者が使用するビルドシステムによって異なり、systemdはmesonを使用します。私が行ったときhttps://github.com/systemd/systemd、下にスクロールしましたが、プロジェクトに関する情報がありました。
私は次の行を見ました:
ビルド要件に関する情報は、readme ファイルに提供されます。
そしてReadmeを読むことは常に良いアイデアです!
$ sudo apt-get install meson
$ git clone https://github.com/systemd/systemd.git
$ meson systemd/ && ninja -C systemd
$ cd systemd; sudo ninja install
ドライブがいっぱいにならないようにログ保持を設定するには:
ここでは、rsyslogのログ回転を設定する必要があります。 logrotateの設定は次の場所にあり、/etc/logrotate.d
私たちが望むファイルは次のとおりです。/etc/logrotate.d/rsyslog
まず、文書にアクセスします。
$ man logrotate.conf
$ man logrotate
今、私は文書を読んだので、ログ回転のキーワードが次のファイルに回転する時期を指定し、rotate
回転したファイルを圧縮してメールで送信します(オプション)。ファイルを回転させようとしています。私は。size
compress
mail
mailfirst
私の/etc/logrotate.d/rsyslog
外観:
[...]
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
[...]
logrotate 構成/var/log/auth
:
[...]
/var/log/kern.log
/var/log/auth.log
{
rotate 10
size 100M
compress
mail [email protected]
mailfirst
}
/var/log/user.log
[...]
これにより、ほぼ1Gbサイズのファイルを最大10個まで保存でき100Mb
、ファイルが100Mに達すると圧縮され、次のアドレスに電子メールで送信されます。[Eメール保護]。デフォルトでは、Rotatelogはcronを介して毎日実行され、毎時間実行することをお勧めします。man crontab
。