Nixpkgs version
Describe the bug
Radicale's PAM plugin is currently broken for several reasons:
python3.pkgs.pam is not installed as a dependency
- The NixOS module doesn't install a new PAM module with the name
radicale (although this might be the user's responsibility)
- When the user installs the
radicale PAM module using security.pam with unixAuth = true , Radicale still can't verify user passwords because:
pam_unix.so uses the setuid() syscall which is restricted because of SystemCallFilter=[ ... "~@privileged" ... ]
- The process can't access
/etc/shadow due to insufficient privileges (Can be fixed by using SupplementaryGroups=["shadow"]; (see the comment in https://github.com/Kozea/Radicale/blob/master/radicale/auth/pam.py)
Of course, changing these the way I proposed could be a security issue that I am not entirely familiar with. I just listed the things I did to make it work.
Steps to reproduce
Use services.radicale.auth.type = "pam"
Expected behaviour
See above
Screenshots
No response
Relevant log output
Additional context
No response
System metadata
- system:
"x86_64-linux"
- host os:
Linux 6.12.21, NixOS, 25.05 (Warbler), 25.05pre776537.52faf482a388
- multi-user?:
yes
- sandbox:
yes
- version:
nix-env (Nix) 2.24.13
- channels(root):
"nixos"
- nixpkgs:
/nix/var/nix/profiles/per-user/root/channels/nixos
Notify maintainers
@dotlambda
Note for maintainers: Please tag this issue in your pull request description. (i.e. Resolves #ISSUE.)
I assert that this issue is relevant for Nixpkgs
Is this issue important to you?
Add a 👍 reaction to issues you find important.
Nixpkgs version
Describe the bug
Radicale's PAM plugin is currently broken for several reasons:
python3.pkgs.pamis not installed as a dependencyradicale(although this might be the user's responsibility)radicalePAM module usingsecurity.pamwithunixAuth = true, Radicale still can't verify user passwords because:pam_unix.souses thesetuid()syscall which is restricted because ofSystemCallFilter=[ ... "~@privileged" ... ]/etc/shadowdue to insufficient privileges (Can be fixed by usingSupplementaryGroups=["shadow"];(see the comment in https://github.com/Kozea/Radicale/blob/master/radicale/auth/pam.py)Of course, changing these the way I proposed could be a security issue that I am not entirely familiar with. I just listed the things I did to make it work.
Steps to reproduce
Use
services.radicale.auth.type = "pam"Expected behaviour
See above
Screenshots
No response
Relevant log output
Additional context
No response
System metadata
"x86_64-linux"Linux 6.12.21, NixOS, 25.05 (Warbler), 25.05pre776537.52faf482a388yesyesnix-env (Nix) 2.24.13"nixos"/nix/var/nix/profiles/per-user/root/channels/nixosNotify maintainers
@dotlambda
Note for maintainers: Please tag this issue in your pull request description. (i.e.
Resolves #ISSUE.)I assert that this issue is relevant for Nixpkgs
Is this issue important to you?
Add a 👍 reaction to issues you find important.