NixOS - edit system files

Hello,

I’m experiencing with NixOS and would like to know what would be the nicest way to add a specific line to a system file.

As an example, how would you configure NixOS so the line
auth sufficient pam_fprintd.so
is added to the /etc/pam.d/doas file? As a bonus, it would be nice to know how to change an option (and not add an entire line) to a system file for which there is no NixOS default extraConfig/extraRules support for.

This would allow me to add this line or not depending on the machine NixOS will be installed on.

Thanks in advance for your suggestions.

hallettj, (edited )
@hallettj@beehaw.org avatar

I did some digging around in the manual, and I tested this option which seems to work:


<span style="color:#323232;">security.pam.services.doas.fprintAuth = true;
</span>

On my machine that adds this line to /etc/pam.d/doas:


<span style="color:#323232;">auth sufficient /nix/store/fq4vbhdk8dqywxirg3wb99zidfss7sbi-fprintd-1.94.2/lib/security/pam_fprintd.so # fprintd (order 11400)
</span>

Edit: Note that the NixOS option puts in the full path to pam_fprintd.so. That’s necessary because NixOS doesn’t put so files in search paths.

Without doing more research I don’t know how to add arbitrary options to pam files in case you run into something that isn’t mapped to a NixOS option yet. The implementation for the pam options is here; there might be something in there that would work.

wwwgem,
@wwwgem@lemmy.ml avatar

Thanks very much. That’s exactly what I needed. I’m still not used to the diversity of NixOS documentation and was not aware of this one.

wwwgem,
@wwwgem@lemmy.ml avatar

Just realized that I had this line in my config already but the change was not applied until I reboot. 😳

2xsaiko,
@2xsaiko@discuss.tchncs.de avatar

Arbitrary options are internal so are not shown in the options search. They’re at security.pam.services.<name>.rules.

Here’s the options that get added using the public options including fprintAuth: github.com/NixOS/nixpkgs/blob/…/pam.nix#L621

wwwgem,
@wwwgem@lemmy.ml avatar

Thanks! I’m still not used to the diversity of all the NixOS documentarian and was not aware that arbitrary options can be found there.

hallettj,
@hallettj@beehaw.org avatar

Although they’re not in the search, they are in the manual so you can find them searching that page. This one is listed as,


<span style="color:#323232;">security.pam.services..fprintAuth
</span>

But it does take some inferences to find this, and to realize that you can put doas in place of ``

2xsaiko,
@2xsaiko@discuss.tchncs.de avatar

No, that one is in the search as well. It’s a normal option. search.nixos.org/options?show=security.pam.servic…

What isn’t and also isn’t in the manual is the rules options. Those are all internal.

wwwgem,
@wwwgem@lemmy.ml avatar

As I said I’ve actually done it before asking… But I didn’t reboot and and that was needed for the change to take effect ¯_(ツ)_/¯

  • All
  • Subscribed
  • Moderated
  • Favorites
  • linux@lemmy.ml
  • localhost
  • All magazines
  • 200 @ entry_single
    HTTP status 200 OK
    Route name entry_single
    Has session yes
    Stateless Check no
    Time 513 ms
    Total time 513 ms
    Initialization time 49 ms
    Memory 14.0 MiB
    Peak memory usage 14.0 MiB
    PHP memory limit 128 MiB
    Cache 1
    Number of forms 1
    Number of errors 0
    Logger 87
    Errors 0
    Warnings 0
    Deprecations 87
    Cache 55 in 474.77 ms
    Cache Calls 55
    Total time 474.77 ms
    Cache hits 44 / 63 (69.84%)
    Cache writes 15
    641
    Default locale en
    Missing messages 641
    Fallback messages 0
    Defined messages 149
    Security n/a
    Authenticated No
    Firewall name main
    Twig 347 ms
    Render Time 347 ms
    Template Calls 151
    Block Calls 82
    Macro Calls 6
    106 in 271 ms
    settings_row_switch 15
    date 11
    user_inline 10
    date_edited 9
    vote 9
    boost 9
    entry_comment 8
    user_avatar 8
    entry_comments_nested 8
    user_settings_row_switch 4
    settings_row_enum 2
    entry 1
    entries_cross 1
    editor_toolbar 1
    user_actions 1
    magazine_box 1
    magazine_sub 1
    related_magazines 1
    active_users 1
    related_categories 1
    related_posts 1
    related_entries 1
    support_us_block 1
    featured_magazines 1
    14 in 82.72 ms
    Database Queries 14
    Different statements 12
    Query time 82.72 ms
    Invalid entities 0
    Cache hits 27
    Cache misses 1
    Cache puts 1
    6.4.0
    Profiler token f64a3c
    Environment dev
    Debug enabled
    PHP version 8.2.26   View phpinfo()
    PHP Extensions Xdebug ✗ APCu ✓ OPcache ✓
    PHP SAPI apache2handler