chrony service: Members of group chrony can use chronyc
This commit is contained in:
parent
c459e269eb
commit
d89f269b26
@ -303,7 +303,7 @@
|
|||||||
nslcd = 58;
|
nslcd = 58;
|
||||||
scanner = 59;
|
scanner = 59;
|
||||||
nginx = 60;
|
nginx = 60;
|
||||||
#chrony = 61; # unused
|
chrony = 61;
|
||||||
systemd-journal = 62;
|
systemd-journal = 62;
|
||||||
smtpd = 63;
|
smtpd = 63;
|
||||||
smtpq = 64;
|
smtpq = 64;
|
||||||
|
@ -8,26 +8,10 @@ let
|
|||||||
|
|
||||||
stateDir = "/var/lib/chrony";
|
stateDir = "/var/lib/chrony";
|
||||||
|
|
||||||
chronyUser = "chrony";
|
keyFile = "/etc/chrony.keys";
|
||||||
|
|
||||||
cfg = config.services.chrony;
|
cfg = config.services.chrony;
|
||||||
|
|
||||||
configFile = pkgs.writeText "chrony.conf" ''
|
|
||||||
${toString (map (server: "server " + server + "\n") cfg.servers)}
|
|
||||||
|
|
||||||
${optionalString cfg.initstepslew.enabled ''
|
|
||||||
initstepslew ${toString cfg.initstepslew.threshold} ${toString (map (server: server + " ") cfg.initstepslew.servers)}
|
|
||||||
''}
|
|
||||||
|
|
||||||
driftfile ${stateDir}/chrony.drift
|
|
||||||
|
|
||||||
${optionalString (!config.time.hardwareClockInLocalTime) "rtconutc"}
|
|
||||||
|
|
||||||
${cfg.extraConfig}
|
|
||||||
'';
|
|
||||||
|
|
||||||
chronyFlags = "-m -f ${configFile} -u ${chronyUser}";
|
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -85,31 +69,60 @@ in
|
|||||||
# Make chronyc available in the system path
|
# Make chronyc available in the system path
|
||||||
environment.systemPackages = [ pkgs.chrony ];
|
environment.systemPackages = [ pkgs.chrony ];
|
||||||
|
|
||||||
systemd.services.ntpd.enable = false;
|
environment.etc."chrony.conf".text =
|
||||||
|
''
|
||||||
|
${concatMapStringsSep "\n" (server: "server " + server) cfg.servers}
|
||||||
|
|
||||||
|
${optionalString
|
||||||
|
cfg.initstepslew.enabled
|
||||||
|
"initstepslew ${toString cfg.initstepslew.threshold} ${concatStringsSep " " cfg.initstepslew.servers}"
|
||||||
|
}
|
||||||
|
|
||||||
|
driftfile ${stateDir}/chrony.drift
|
||||||
|
|
||||||
|
keyfile ${keyFile}
|
||||||
|
generatecommandkey
|
||||||
|
|
||||||
|
${optionalString (!config.time.hardwareClockInLocalTime) "rtconutc"}
|
||||||
|
|
||||||
|
${cfg.extraConfig}
|
||||||
|
'';
|
||||||
|
|
||||||
|
users.extraGroups = singleton
|
||||||
|
{ name = "chrony";
|
||||||
|
gid = config.ids.gids.chrony;
|
||||||
|
};
|
||||||
|
|
||||||
users.extraUsers = singleton
|
users.extraUsers = singleton
|
||||||
{ name = chronyUser;
|
{ name = "chrony";
|
||||||
uid = config.ids.uids.chrony;
|
uid = config.ids.uids.chrony;
|
||||||
|
group = "chrony";
|
||||||
description = "chrony daemon user";
|
description = "chrony daemon user";
|
||||||
home = stateDir;
|
home = stateDir;
|
||||||
};
|
};
|
||||||
|
|
||||||
jobs.chronyd =
|
systemd.services.ntpd.enable = false;
|
||||||
{ description = "chrony daemon";
|
|
||||||
|
systemd.services.chronyd =
|
||||||
|
{ description = "chrony NTP daemon";
|
||||||
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
after = [ "network.target" ];
|
after = [ "network.target" ];
|
||||||
conflicts = [ "ntpd.service" "systemd-timesyncd.service" ];
|
conflicts = [ "ntpd.service" "systemd-timesyncd.service" ];
|
||||||
|
|
||||||
path = [ chrony ];
|
path = [ pkgs.chrony ];
|
||||||
|
|
||||||
preStart =
|
preStart =
|
||||||
''
|
''
|
||||||
mkdir -m 0755 -p ${stateDir}
|
mkdir -m 0755 -p ${stateDir}
|
||||||
chown ${chronyUser} ${stateDir}
|
touch ${keyFile}
|
||||||
|
chmod 0640 ${keyFile}
|
||||||
|
chown chrony:chrony ${stateDir} ${keyFile}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
exec = "chronyd -n ${chronyFlags}";
|
serviceConfig =
|
||||||
|
{ ExecStart = "${pkgs.chrony}/bin/chronyd -n -m -u chrony";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -16,7 +16,6 @@ stdenv.mkDerivation rec {
|
|||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
|
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
"--sysconfdir=$(out)/etc"
|
|
||||||
"--chronyvardir=$(out)/var/lib/chrony"
|
"--chronyvardir=$(out)/var/lib/chrony"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user