ConsoleKit release. On systemd systems, advanced ConsoleKit and udev-acl
functionality are provided by systemd.
+Rules files in /etc/udev/rules.s/ with the same name as rules files in
+/run/udev/rules.d/ now always have precedence. The stack of files is now:
+/usr/lib (package), /run (runtime, auto-generated), /etc (admin), while
+the later ones override the earlier ones. In other words: the admin has
+always the last say.
+
udev 181
========
fclose(f);
}
- /* environment overwrites config */
+ /* environment overrides config */
env = getenv("UDEV_LOG");
if (env != NULL)
udev_set_log_priority(udev, util_log_priority(env));
if (!udev->rules_path[0])
goto err;
+ /* /run/udev -- runtime rules */
+ if (asprintf(&udev->rules_path[2], "%s/rules.d", udev->run_path) < 0)
+ goto err;
+
/* /etc/udev -- local administration rules */
udev->rules_path[1] = strdup(SYSCONFDIR "/udev/rules.d");
if (!udev->rules_path[1])
goto err;
- /* /run/udev -- runtime rules */
- if (asprintf(&udev->rules_path[2], "%s/rules.d", udev->run_path) < 0)
- goto err;
-
udev->rules_path_count = 3;
}
dbg(udev, "put file '%s' into list\n", filename);
/*
* the basename is the key, the filename the value
- * identical basenames from different directories overwrite each other
+ * identical basenames from different directories override each other
* entries are sorted after basename
*/
udev_list_entry_add(file_list, dent->d_name, filename);
<refsect2><title>Rules files</title>
<para>The udev rules are read from the files located in the
system rules directory <filename>/usr/lib/udev/rules.d</filename>,
- the local administration directory <filename>/etc/udev/rules.d</filename>
- and the volatile runtime directory <filename>/run/udev/rules.d</filename>.
+ the volatile runtime directory <filename>/run/udev/rules.d</filename>
+ and the local administration directory <filename>/etc/udev/rules.d</filename>.
All rules files are collectively sorted and processed in lexical order,
regardless of the directories in which they live. However, files with
- identical file names replace each other. Files in <filename>/run</filename>
- have the highest priority, files in <filename>/etc</filename> take precedence
+ identical file names replace each other. Files in <filename>/etc</filename>
+ have the highest priority, files in <filename>/run</filename> take precedence
over files with the same name in <filename>/lib</filename>. This can be
- used to overwrite a system rules file if needed; a symlink in
- <filename>/etc</filename> with the same name as a rules file in
+ used to override a system-supplied rules file with a local file if needed;
+ a symlink in <filename>/etc</filename> with the same name as a rules file in
<filename>/lib</filename>, pointing to <filename>/dev/null</filename>,
disables the rules file entirely.</para>
<varlistentry>
<term><option>OWNER, GROUP, MODE</option></term>
<listitem>
- <para>The permissions for the device node. Every specified value overwrites
+ <para>The permissions for the device node. Every specified value overrides
the compiled-in default value.</para>
</listitem>
</varlistentry>