summaryrefslogtreecommitdiffstats
path: root/nixos/modules
diff options
context:
space:
mode:
authorJamey Sharp <jamey@minilop.net>2018-09-29 23:30:02 -0700
committerJamey Sharp <jamey@minilop.net>2018-09-30 11:08:12 -0700
commitb63f65aea0dea11c20e9299210af1d2ee4299b58 (patch)
tree147d0ddcbf8bf7131c922707ec5abf4816878775 /nixos/modules
parent188bdfb95d7218b931f7d605ad0a5e6961dc3a34 (diff)
nixos/pam: create wtmp/lastlog iff using pam_lastlog
I think pam_lastlog is the only thing that writes to these files in practice on a modern Linux system, so in a configuration that doesn't use that module, we don't need to create these files. I used tmpfiles.d instead of activation snippets to create the logs. It's good enough for upstream and other distros; it's probably good enough for us.
Diffstat (limited to 'nixos/modules')
-rw-r--r--nixos/modules/security/pam.nix7
-rw-r--r--nixos/modules/system/activation/activation-script.nix5
2 files changed, 7 insertions, 5 deletions
diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix
index bef10b4fe614..926c6d77d3bb 100644
--- a/nixos/modules/security/pam.nix
+++ b/nixos/modules/security/pam.nix
@@ -548,6 +548,13 @@ in
environment.etc =
mapAttrsToList (n: v: makePAMService v) config.security.pam.services;
+ systemd.tmpfiles.rules = optionals
+ (any (s: s.updateWtmp) (attrValues config.security.pam.services))
+ [
+ "f /var/log/wtmp"
+ "f /var/log/lastlog"
+ ];
+
security.pam.services =
{ other.text =
''
diff --git a/nixos/modules/system/activation/activation-script.nix b/nixos/modules/system/activation/activation-script.nix
index b74153885318..cd6dc1fb8201 100644
--- a/nixos/modules/system/activation/activation-script.nix
+++ b/nixos/modules/system/activation/activation-script.nix
@@ -128,11 +128,6 @@ in
''
# Various log/runtime directories.
- mkdir -m 0755 -p /var/log
-
- touch /var/log/wtmp /var/log/lastlog # must exist
- chmod 644 /var/log/wtmp /var/log/lastlog
-
mkdir -m 1777 -p /var/tmp
# Empty, immutable home directory of many system accounts.