On Wed, 12 Mar 2025 08:52:43 -0700
Cy Schubert <cy.schub...@cschubert.com> wrote:

> In message <20250312211806.012942ff753b3dd61bb3e...@dec.sakura.ne.jp>, 
> Tomoaki
> AOKI writes:
> > On Tue, 11 Mar 2025 17:08:46 -0700
> > Cy Schubert <cy.schub...@cschubert.com> wrote:
> >
> > > In message <20250312074100.17f51ecf414b2084def58...@dec.sakura.ne.jp>, 
> > > Tomoaki
> > > AOKI writes:
> > > > On Tue, 11 Mar 2025 12:21:03 -0700
> > > > Cy Schubert <cy.schub...@cschubert.com> wrote:
> > > >
> > > > > In message 
> > > > > <20250312041554.48013af3d18e4a5672de3...@dec.sakura.ne.jp>, 
> > > > > Tomoaki
> > > > > AOKI writes:
> > > > > > On Tue, 11 Mar 2025 12:08:10 -0700
> > > > > > Cy Schubert <cy.schub...@cschubert.com> wrote:
> > > > > >
> > > > > > > In message 
> > > > > > > <20250312040101.154420f993ed27966dfc1...@dec.sakura.ne.j
> > p>, 
> > > > > > > Tomoaki
> > > > > > > AOKI writes:
> > > > > > > > On Tue, 11 Mar 2025 08:13:51 -0700
> > > > > > > > Cy Schubert <cy.schub...@cschubert.com> wrote:
> > > > > > > >
> > > > > > > > > In message 
> > > > > > > > > <20250311011257.dd642ecbcd132ecb7142dc35@dec.sakura.
> > ne.j
> > > > p>, 
> > > > > > > > > Tomoaki
> > > > > > > > > AOKI writes:
> > > > > > > > > > On Mon, 10 Mar 2025 16:37:58 +0100
> > > > > > > > > > "Herbert J. Skuhra" <herb...@gojira.at> wrote:
> > > > > > > > > >
> > > > > > > > > > > On Mon, 10 Mar 2025 13:06:25 +0100, David Wolfskill wrote:
> > > > > > > > > > > > 
> > > > > > > > > > > > On Mon, Mar 10, 2025 at 01:51:40PM +0200, Marek 
> > > > > > > > > > > > Zarychta 
> > wrot
> > > > e:
> > > > > > > > > > > > > Hello List Subscirbers,
> > > > > > > > > > > > > 
> > > > > > > > > > > > > in the past the module was loaded automatically upon 
> > > > > > > > > > > > > NT
> > PD s
> > > > erve
> > > > > > r st
> > > > > > > > artu
> > > > > > > > > > p.
> > > > > > > > > > > > > It's no longer true, now it has to be loaded earlier.
> > > > > > > > > > > > > Perhaps people running stable/14 might find this 
> > > > > > > > > > > > > messag
> > e us
> > > > eful
> > > > > > .
> > > > > > > > > > > 
> > > > > > > > > > > Hmm, works for me on main and stable/14. 
> > > > > > > > > > > 
> > > > > > > > > > > > So... I noticed this for (precisely) one of the five 
> > > > > > > > > > > > mach
> > ines
> > > >  I h
> > > > > > ave
> > > > > > > > > > > > that track stable/14 -- the other 4 get mac_ntpd loaded 
> > > > > > > > > > > > a
> > utom
> > > > agic
> > > > > > ally
> > > > > > > >  as
> > > > > > > > > > > > usual.
> > > > > > > > > > > > 
> > > > > > > > > > > > In the failing case, it seems that
> > > > > > > > > > > > 
> > > > > > > > > > > >         sysctl security.mac.version
> > > > > > > > > > > > 
> > > > > > > > > > > > yielded
> > > > > > > > > > > > 
> > > > > > > > > > > >         sysctl: unknown oid 'security.mac.version'
> > > > > > > > > > > 
> > > > > > > > > > > I only get this if I build a kernel without "options 
> > > > > > > > > > > MAC". 
> > But 
> > > > in t
> > > > > > his
> > > > > > > > > > > no mac_* kernel modules are built and ntpd fails with:
> > > > > > > > > > > 
> > > > > > > > > > > Starting ntpd.
> > > > > > > > > > > daemon control: got EOF
> > > > > > > > > > > /etc/rc.d/ntpd: WARNING: failed to start ntpd
> > > > > > > > > >
> > > > > > > > > > In this case, you'll find something like
> > > > > > > > > >   Need MAC 'ntpd' policy enabled to drop root privileges
> > > > > > > > > >   daemon child exited with code 255
> > > > > > > > > > in ntpd logfile (/var/db/ntpd.log in my case, but
> > > > > > > > > > possibly /var/log/messages by default).
> > > > > > > > > 
> > > > > > > > > I don't understand why some systems (those in this thread) 
> > > > > > > > > have
> >  a p
> > > > robl
> > > > > > em 
> > > > > > > > > not loading mac_ntpd while others, i.e. my stable/14 at $JOB, 
> > > > > > > > > a
> > re f
> > > > ine.
> > > > > >  I'd
> > > > > > > >  
> > > > > > > > > like to try to understand the differences between those that 
> > > > > > > > > wo
> > rk a
> > > > nd t
> > > > > > hose
> > > > > > > >  
> > > > > > > > > that don't.
> > > > > > > > > 
> > > > > > > > > First of all, the ntpd rc script bails without saying why 
> > > > > > > > > when 
> > it 
> > > > > > > > > encounters a problem. can_run_nonroot() simply returns a bad 
> > > > > > > > > re
> > turn
> > > >  cod
> > > > > > e 
> > > > > > > > > leaving us to wonder why.
> > > > > > > > > 
> > > > > > > > > The first order of business is to  produce a patch to 
> > > > > > > > > indicate 
> > why 
> > > > it 
> > > > > > > > > bails. Please apply the attached patch and let me know where 
> > > > > > > > > it
> >  fai
> > > > ls. 
> > > > > > > > > Messages will be printed to stderr and to /var/log/messages 
> > > > > > > > > (as
> > sumi
> > > > ng 
> > > > > > > > > daemon.err is sent there).
> > > > > > > >
> > > > > > > > The output after patch (without loading mac_ntpd.ko manually):
> > > > > > > >
> > > > > > > > Mar 12 03:27:35 ***** rc.d/ntpd[2581]: user  cannot access files
> > > > > > > > listed in command line, exiting
> > > > > > > > Mar 12 03:27:35 ***** root[2589]: /etc/rc: WARNING: failed to 
> > > > > > > > sta
> > rt n
> > > > tpd
> > > > > > > >
> > > > > > > > See
> > > > > > > >   
> > > > > > > > https://lists.freebsd.org/archives/dev-commits-src-branches/202
> > 5-Fe
> > > > brua
> > > > > > ry/0
> > > > > > > > 21308.html
> > > > > > > > for my options related with ntpd.
> > > > > > > 
> > > > > > > Is this before ntpd -u commit was reverted or after?
> > > > > >
> > > > > > Before revert. As I don't pull updates after I read your post which
> > > > > > included the patch.
> > > > > >
> > > > > >
> > > > > > > Please grep ntpd /etc/rc.conf.
> > > > > >
> > > > > > Result stripping comments.
> > > > > >
> > > > > > % grep ntpd /etc/rc.conf
> > > > > > ntpd_flags="-4 -g -x -f /var/db/ntp/ntpd.drift -l /var/log/ntpd.log"
> > > > > 
> > > > > This is your problem. Remove the -f and -l arguments and put the 
> > > > > logfil
> > e 
> > > > > and driftfile ntp.conf statements instead.
> > > >
> > > > Wait, another way that works?!
> > > > So I should consider it as a bug in ntpd.
> > > > If the statements in ntpd.conf works, command line options should work
> > > > just the same way (usually, if configuration files and command line
> > > > option has the same functionalities, command line option is preferred
> > > > to override, like /etc/make.conf and `make` command line).\
> > > 
> > > No, this is not a bug in ntpd.
> > > 
> > > rc(8) issues,
> > >   su ntpd /usr/sbin/ntpd ... ntpd args
> > > 
> > > If files are owned by root ntpd may not have access to them and it will 
> > > fail to start.
> > > 
> > > If we do,
> > >   /usr/sbin/ntpd -u ntpd:ntpd ... other ntpd args
> > > 
> > > ntpd will start as root, open its files, then setuid(ntpd) to change the 
> > > account it's running under. This is how we, FreeBSD, have implemented it. 
> > > This is an artifact of rc(8). And this is why we need mac_ntpd.ko. 
> > > Because 
> > > ntpd -u will initiate its use of the clock, then switch to the ntpd UID. 
> > > The su ntpd /usr/sbin/ntpd approach starts ntpd under the ntpd account 
> > > from
> >  
> > > the very start. We need the kernel module in this case.
> > > 
> > > I will rework the ntpd rc script to a) not use the rc(8) plumbing and b) 
> > > chroot itself. Both of these are better security than we currently have.
> > > 
> > > The patch was the first step in deprecating mac_ntpd and the first step 
> > > to 
> > > putting ntpd into its own chroot.
> > > 
> > > What you have described is not a bug but an artifact how we invoke ntpd 
> > > under FreeBSD, specifically the su.
> >
> > Tried (still before reverting, patched /etc/rc.d/ntpd) switching
> > command line option to corresponding statements in ntp.conf, and
> > encountered strange behavior.
> >
> > In /etc/rc.conf (this time, not stripped commented out lines),
> >
> >   ===== Quote =====
> >
> > % grep ntpd /etc/rc.conf
> > # ntpd_program="/usr/local/sbin/ntpd"
> > # ntpd_flags="-4 -g -x -f /var/db/ntpd.drift -p /var/run/ntpd.pid -l 
> > /var/log
> > /ntpd.log"
> > # ntpd_flags="-4 -g -x -f /var/db/ntpd.drift -l /var/log/ntpd.log"
> > # ntpd_flags="-4 -g -x -f /var/db/ntp/ntpd.drift -l /var/log/ntpd.log"
> > ntpd_flags="-4 -g -x"
> > # ntpd_config="/usr/local/etc/ntp.conf"
> > ntpd_config="/etc/ntp/ntp.conf"
> > ntpd_enable="YES"
> > ntpd_sync_on_start="YES"    # Sync time on ntpd startup, even if
> > offset is high daily_ntpd_leapfile_enable="YES"     # Automatically
> > fetch leapfile daily.
> > ntp_db_leapfile="/var/db/ntp/ntpd.leap-seconds.list"
> > % 
> >
> >   ===== End quote =====
> >
> > Note that ports ntpd is no longer installed now (remnant when I tried
> > ports version before).
> >
> > /etc/ntp/ntp.conf, which is specified in /etc/rc.conf, now contains:
> >
> >   ===== Quote =====
> >
> > driftfile "/var/db/ntp/ntpd.drift"
> > logfile "/var/log/ntpd.log"
> > leapfile "/var/db/ntp/ntpd.leap-seconds.list"
> >
> >   ===== End quote =====
> >
> > And commented out 'mac_ntpd_load="YES"' line in /boot/loader.conf,
> > cased (in /var/log/messages, essential part only):
> >
> >   ===== Quote =====
> >
> > ntpd 4.2.8p18-a (150): Starting
> > Command line: /usr/sbin/ntpd -4 -g -x -p /var/db/ntp/ntpd.pid
> > -c /etc/ntp/ntp.conf -f /var/db/ntp/ntpd.drift -u ntpd:ntpd -g
> >
> >   (snip)
> >
> > switching logging to file /var/log/ntpd.log
> > daemon child exited with code 255
> > /etc/rc: WARNING: failed to start ntpd
> >
> >   (snip)
> >
> > ntpd 4.2.8p18-a (150): Starting
> > Command line: /usr/sbin/ntpd -4 -g -x -p /var/db/ntp/ntpd.pid
> > -c /etc/ntp/ntp.conf -f /var/db/ntp/ntpd.drift -g
> > switching logging to file /var/log/ntpd.log
> >
> >   ===== End quote =====
> >
> > Strangely, ntpd is invoked twice, and command line shown
> > in /var/log/messages still contains deleted options.
> > The second run successfully invoked ntpd, even though mac_ntpd.ko is
> > not auto-loaded.
> >
> > # service ntpd stop
> >
> > works, but following
> >
> > # service ntpd start
> >
> > fails without `kldload mac_ntpd`.
> 
> The script does need a rewrite. We need mac_ntpd because we su ntpd before 
> we invoke ntpd. ntpd -u will open its files, initiate opening the clock, 
> then drop privileges. We won't need mac_ntpd anymore.
> 
> As the commit has been reverted and the plan is to rewrite the script, 
> everything else is moot now.

Looking forward for the update!

Thanks in advance.

> 
> >
> >
> > For other configurations in /etc/rc.conf, comments (after "#") are
> > sanely treated as comments (as behaviors indicates), but this result
> > seems to indicate that comments are NOT treated as comments.
> > Quite strange.
> >
> >
> > > > Anyway, I'll try it once the ongoing heavy rebuilds finished.
> > > >
> > > >
> > > > > 
> > > > > > ntpd_config="/etc/ntp/ntp.conf"
> > > > > > ntpd_enable="YES"
> > > > > > ntpd_sync_on_start="YES"
> > > > > > daily_ntpd_leapfile_enable="YES"
> > > > > > % 
> > > > > >
> > > > > 
> > > > > 
> > > > > -- 
> > > > > Cheers,
> > > > > Cy Schubert <cy.schub...@cschubert.com>
> > > > > FreeBSD UNIX:  <c...@freebsd.org>   Web:  https://FreeBSD.org
> > > > > NTP:           <c...@nwtime.org>    Web:  https://nwtime.org
> > > > > 
> > > > >                       e^(i*pi)+1=0
> > > >
> > > >
> > > > -- 
> > > > Tomoaki AOKI    <junch...@dec.sakura.ne.jp>
> > > 
> > > 
> > > -- 
> > > Cheers,
> > > Cy Schubert <cy.schub...@cschubert.com>
> > > FreeBSD UNIX:  <c...@freebsd.org>   Web:  https://FreeBSD.org
> > > NTP:           <c...@nwtime.org>    Web:  https://nwtime.org
> > > 
> > >                   e^(i*pi)+1=0
> >
> >
> > -- 
> > Tomoaki AOKI    <junch...@dec.sakura.ne.jp>
> 
> 
> -- 
> Cheers,
> Cy Schubert <cy.schub...@cschubert.com>
> FreeBSD UNIX:  <c...@freebsd.org>   Web:  https://FreeBSD.org
> NTP:           <c...@nwtime.org>    Web:  https://nwtime.org
> 
>                       e^(i*pi)+1=0
> 
> 
> 


-- 
Tomoaki AOKI    <junch...@dec.sakura.ne.jp>

Reply via email to