Package: ifupdown
Version: 0.8.35
Control: found -1 0.8.19
Hello,
The interfaces(5) man page states :
"Additionally, when "source-directory" is used, names of the files are
checked to match the following regular expression: ^[a-zA-Z0-9_-]+$. In
other words, the names must consist entirely of ASCII upper- and
lower-case letters, ASCII digits, ASCII underscores, and ASCII
minus-hyphens."
This is true in Jessie with ifupdown version 0.7.53.1. However, in
Stretch and Buster, if{up,down,query} do not apply this check when
processing a source-directory statement.
Steps to reproduce the issue :
/etc/network/interfaces :
==begin==
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
===end===
/etc/network/interfaces.d/#eth.1#~ :
==begin==
iface eth1 inet manual
===end===
# ifup -v eth1
ifup: parsing file /etc/network/interfaces.d/#eth.1~
ifup: configuring interface eth1=eth1 (inet)
(...)
'#eth.1~' is processed even though its name does not match the above
regular expression.
FWIW NetworkManager seems to behave the same with "managed=false" in
/etc/NetworkManager/NetworkManager.conf.
I do not know what is the intended behaviour, but at least the man page
and the actual behaviour should match. The current man page may mislead
a user in believing that it is possible to disable an interface file by
renaming it with special characters.