Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

nixos/cupsd: passwordless admin for wheel with polkit #68218

Merged
merged 1 commit into from Sep 9, 2019

Conversation

worldofpeace
Copy link
Contributor

Motivation for this change

cc @matthewbauer

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.
Notify maintainers

cc @

Copy link
Member

@matthewbauer matthewbauer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks alright, definitely annoying to do this everytime!

I think almost everyone wants this on, but there may be some cases where you don't. Maybe we need a polkit.passwordlessWheel option or something similar. I bet there are more polkit rules out there for other things as well. Might want to scrape them from some other distro to get more comprehensive

Anyway, this one looks good for now!

@worldofpeace
Copy link
Contributor Author

Looks alright, definitely annoying to do this everytime!

I think almost everyone wants this on, but there may be some cases where you don't. Maybe we need a polkit.passwordlessWheel option or something similar.

Glad we share this 😄 I think it would be in line with the nixos style things for there to be an option for this. Will add.

I bet there are more polkit rules out there for other things as well.

I did some scraping in vms (opensuse, ubuntu, fedora.) and package sources. I was mostly trying to figure what ubuntu has done to get this because they're most known for it. Couldn't figure it out though, it seems they have separate users for cups with the help of some patches.

@worldofpeace
Copy link
Contributor Author

Ooh, found the whole rules ubuntu uses

(has a hard time controlling self now 🤣 )

security.polkit.extraConfig = mkIf polkitEnabled ''
polkit.addRule(function(action, subject) {
if (action.id == "org.opensuse.cupspkhelper.mechanism.all-edit" &&
subject.isInGroup("wheel")){
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ubuntu's rule uses a special lpadmin group which actually would help the fact that wheel could actually not be an admin identity.

Identity=unix-group:lpadmin;unix-group:admin;unix-group:sudo

@worldofpeace worldofpeace merged commit 787eabd into NixOS:master Sep 9, 2019
@worldofpeace worldofpeace deleted the cups-pk/no-auth-wheel branch September 9, 2019 08:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants