This creates setcap wrappers for oping and noping to allow unprivileged users to use those as well.
		
			
				
	
	
		
			23 lines
		
	
	
		
			470 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			470 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ config, lib, pkgs, ... }:
 | 
						|
 | 
						|
with lib;
 | 
						|
 | 
						|
let
 | 
						|
  cfg = config.programs.liboping;
 | 
						|
in {
 | 
						|
  options.programs.liboping = {
 | 
						|
    enable = mkEnableOption "liboping";
 | 
						|
  };
 | 
						|
  config = mkIf cfg.enable {
 | 
						|
    environment.systemPackages = with pkgs; [ liboping ];
 | 
						|
    security.wrappers = mkMerge (map (
 | 
						|
      exec: {
 | 
						|
        "${exec}" = {
 | 
						|
          source = "${pkgs.liboping}/bin/${exec}";
 | 
						|
          capabilities = "cap_net_raw+p";
 | 
						|
        };
 | 
						|
      }
 | 
						|
    ) [ "oping" "noping" ]);
 | 
						|
  };
 | 
						|
}
 |