systemd-nspawnのntpd

systemd-nspawnのntpd

サーバーインフラストラクチャのさまざまな部分をコンテナ化しようとしていますが、コンテナで実行するサービスの1つがntpデーモンです。

私はsystemd-nspawn(systemd 233)をハイパーバイザーとして使用し、コンテナ内のinitプロセスを使用します。

ntpdのバージョンは4.2.8p10です。

コンテナ内でntpdを起動しようとするたびに、cap_set_proc()「操作が許可されていません」エラーと競合が発生します。

21 Oct 11:10:23 ntpd[51]: ntpd [email protected] Fri Oct 20 23:28:39 UTC 2017 (1): Starting
21 Oct 11:10:23 ntpd[51]: Command line: ntpd -g -n -u ntp:ntp
21 Oct 11:10:23 ntpd[51]: Cannot set RLIMIT_MEMLOCK: Operation not permitted
21 Oct 11:10:23 ntpd[51]: proto: precision = 0.335 usec (-21)
21 Oct 11:10:23 ntpd[51]: Listen normally on 0 v4wildcard 0.0.0.0:123
21 Oct 11:10:23 ntpd[51]: Listen normally on 1 lo 127.0.0.1:123
21 Oct 11:10:23 ntpd[51]: Listening on routing socket on fd #18 for interface updates
21 Oct 11:10:23 ntpd[51]: mlockall(): Cannot allocate memory
21 Oct 11:10:23 ntpd[51]: start_kern_loop: ntp_loopfilter.c line 1119: ntp_adjtime: Operation not permitted
21 Oct 11:10:23 ntpd[51]: set_freq: ntp_loopfilter.c line 1082: ntp_adjtime: Operation not permitted
21 Oct 11:10:23 ntpd[51]: cap_set_proc() failed to drop root privs: Operation not permitted

私が今まで試したこと:

  1. 機能を有効にせずにntpdをビルドすると正常に起動しますが、まだ同じntp_adjtimeシステムコール権限の問題があります。
  2. --private-users=0存在するかどうかにかかわらず、systemd-nspawnを実行します--private-users
  3. systemd-nspawn自体の機能の使用(主CAP_SYS_TIMEにおよびCAP_NET_BIND_SERVICE
  4. コンテナ内で ntpd 機能を使用します。

これらのどれも肯定的な結果につながりません。どんなアイデアでも大いに感謝します。

ベストアンサー1

おすすめ記事