| 
									
										
										
										
											2014-04-14 16:26:48 +02:00
										 |  |  | { config, lib, pkgs, ... }: | 
					
						
							| 
									
										
										
										
											2010-01-03 11:59:08 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-04-14 16:26:48 +02:00
										 |  |  | with lib; | 
					
						
							| 
									
										
										
										
											2010-01-03 11:59:08 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | let | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   cfg = config.security.pam.usb; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-15 14:47:51 +02:00
										 |  |  |   anyUsbAuth = any (attrByPath ["usbAuth"] false) (attrValues config.security.pam.services); | 
					
						
							| 
									
										
										
										
											2010-01-03 11:59:08 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | in | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   options = { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     security.pam.usb = { | 
					
						
							|  |  |  |       enable = mkOption { | 
					
						
							| 
									
										
										
										
											2013-10-30 17:37:45 +01:00
										 |  |  |         type = types.bool; | 
					
						
							| 
									
										
										
										
											2010-01-03 11:59:08 +00:00
										 |  |  |         default = false; | 
					
						
							|  |  |  |         description = ''
 | 
					
						
							| 
									
										
										
										
											2013-10-15 14:47:51 +02:00
										 |  |  |           Enable USB login for all login systems that support it.  For | 
					
						
							|  |  |  |           more information, visit <link | 
					
						
							| 
									
										
										
										
											2017-09-24 20:42:44 +02:00
										 |  |  |           xlink:href="https://github.com/aluzzardi/pam_usb/wiki/Getting-Started#setting-up-devices-and-users" />. | 
					
						
							| 
									
										
										
										
											2010-01-03 11:59:08 +00:00
										 |  |  |         '';
 | 
					
						
							|  |  |  |       }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   config = mkIf (cfg.enable || anyUsbAuth) { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-15 19:10:48 -05:00
										 |  |  |     # Make sure pmount and pumount are setuid wrapped. | 
					
						
							| 
									
										
										
										
											2017-01-29 05:33:56 -06:00
										 |  |  |     security.wrappers = { | 
					
						
							|  |  |  |       pmount.source = "${pkgs.pmount.out}/bin/pmount"; | 
					
						
							|  |  |  |       pumount.source = "${pkgs.pmount.out}/bin/pumount"; | 
					
						
							|  |  |  |     }; | 
					
						
							| 
									
										
										
										
											2016-07-15 19:10:48 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-03 11:59:08 +00:00
										 |  |  |     environment.systemPackages = [ pkgs.pmount ]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | } |