Re: git: 1a241a911dc8 - stable/14 - ntpd: Use the ntpd -u option in preference to the rc su plumbing
Date: Fri, 28 Feb 2025 09:53:24 UTC
Hi.
Unfortunately, this commit caused ntpd hesitating to (re)start
with error messages below on stable/14, amd64.
===== Quote =====
# service ntpd stop
Stopping ntpd.
Waiting for PIDS: 52508.
# service ntpd start
Starting ntpd.
daemon control: got EOF
/etc/rc.d/ntpd: WARNING: failed to start ntpd
#
===== End quote =====
Note that I have
ntpd_flags="-4 -g -x -f /var/db/ntpd.drift -l /var/log/ntpd.log"
ntpd_config="/etc/ntp/ntp.conf"
ntpd_enable="YES"
ntpd_sync_on_start="YES"
daily_ntpd_leapfile_enable="YES"
ntp_leapfile_fetch_verbose="YES"
in my /etc/rc.conf.
And the high PID value above is because this output is obtained after
several attempts of stopping and starting.
Regards.
> The branch stable/14 has been updated by cy:
>
> URL:
https://cgit.FreeBSD.org/src/commit/?id=1a241a911dc8635c3803f1a6620e1ab4692f6ecf
>
> commit 1a241a911dc8635c3803f1a6620e1ab4692f6ecf
> Author: Cy Schubert <cy@FreeBSD.org>
> AuthorDate: 2024-12-12 20:03:09 +0000
> Commit: Cy Schubert <cy@FreeBSD.org>
> CommitDate: 2025-02-25 00:37:46 +0000
>
> ntpd: Use the ntpd -u option in preference to the rc su plumbing
>
> Using the rc plumbing to setuid(2) is preferred as it allows the
user
> to use the -i option in ntpd_flags to chroot ntpd.
>
> Chrooting ntpd by default will be a 2025 project.
>
> Reviewed by: markj
> Differential Revision: https://reviews.freebsd.org/D48191
>
> (cherry picked from commit 521f66715afb312b356afafc68cbc044a436a753)
> ---
> libexec/rc/rc.d/ntpd | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/libexec/rc/rc.d/ntpd b/libexec/rc/rc.d/ntpd
> index 76d83149ae1a..36df4ae08c96 100755
> --- a/libexec/rc/rc.d/ntpd
> +++ b/libexec/rc/rc.d/ntpd
> @@ -98,7 +98,6 @@ ntpd_precmd()
> # by the admin, we don't add the option. If the file exists
in the old
> # default location we use that, else we use the new default
location.
> if can_run_nonroot; then
> - _user="ntpd"
> driftopt="-f ${_ntp_default_driftfile}"
> elif grep -q "^[ \t]*driftfile" "${ntpd_config}" ||
> [ -n "${rc_flags}" ] &&
> @@ -112,7 +111,13 @@ ntpd_precmd()
> fi
>
> # Set command_args based on the various config vars.
> - command_args="-p ${pidfile} -c ${ntpd_config} ${driftopt}"
> + command_args="-p ${pidfile} -c ${ntpd_config} ${driftopt} -u $
{ntpd_user:=ntpd:ntpd}"
> +
> + # Unset ntpd_user because rc.subr uses $${name}_user to
determine
> + # whether to invoke su(1) to setuid() to $ntpd_user for us. We
want
> + # ntpd to do the setuid() itself through the -u argument,
above.
> + unset ntpd_user
> +
> if checkyesno ntpd_sync_on_start; then
> command_args="${command_args} -g"
> fi
--
Tomoaki AOKI <junchoon@dec.sakura.ne.jp>