@@ -108,8 +108,14 @@ recommended that you start a separate shell with root privileges while
108
108
configuring PAM to be able to revert changes if something goes wrong.
109
109
Test your configuration thoroughly before closing the root shell.
110
110
111
+ [[moduleArguments]]
111
112
=== Module Arguments
112
113
114
+ The following table documents the set of arguments recognized by the module.
115
+ Hard-wired defaults can be overridden by a <<confFile,configuration file>>.
116
+ The definitions from the configuration file can be in turn overridden by
117
+ individual files under `/etc/pam.d/`.
118
+
113
119
[horizontal]
114
120
debug::
115
121
Enables debug output
@@ -240,6 +246,13 @@ FIDO devices. It is not possible to mix native credentials and SSH
240
246
credentials. Once this option is enabled all credentials will be parsed
241
247
as SSH.
242
248
249
+ conf_file=file::
250
+ Set an alternative location for the <<confFile,configuration file>>.
251
+ The supplied path must be absolute, and must correspond to an existing
252
+ regular file.
253
+ The specified path is not allowed to be missing, but it
254
+ can be empty.
255
+
243
256
IMPORTANT: On dynamic networks (e.g. where hostnames are set by DHCP),
244
257
users should not rely on the default origin and appid
245
258
("pam://$HOSTNAME") but set those parameters explicitly to the same
@@ -404,6 +417,36 @@ defined in the authorization mapping file. If during an authentication attempt
404
417
a connected device is removed or a new device is plugged in, the authentication
405
418
restarts from the top of the list.
406
419
420
+ [[confFile]]
421
+ == Configuration file
422
+
423
+ A configuration file can be supplied in order to provide system-level default
424
+ values for the `pam_u2f.so` module arguments.
425
+
426
+ - The file can contain the same arguments as <<moduleArguments,defined above>>,
427
+ one per line.
428
+
429
+ - The `conf_file=` argument, which can only appear under `/etc/pam.d/`.
430
+
431
+ - Lines starting with `#` are interpreted as comments and skipped together with
432
+ empty lines.
433
+
434
+ - Heading white-spaces (intended as in `isspace(3)`) are ignored. Everything
435
+ from the first non-white-space character till the end of line is interpreted
436
+ verbatim.
437
+
438
+ - Square brackets around arguments, needed under `/etc/pam.d` to get spaces
439
+ correctly recognized, must not be supplied.
440
+
441
+ The default path of the system-level configuration file is
442
+ `/etc/security/pam_u2f.conf`. The file is allowed to be missing or empty, in
443
+ which case the `pam_u2f.so` configuration will default to the hard-wired
444
+ values.
445
+
446
+ Individual files under `/etc/pam.d/` can specify a different configuration file
447
+ by means of the `conf_file=` argument. Doing so will not affect other
448
+ `/etc/pam.d/` files.
449
+
407
450
== SELinux Note
408
451
409
452
Due to an issue with Fedora Linux, and possibly with other
0 commit comments