Why does cp --no-preserve=mode preserves the mode? Alternative tools available?
In case you are using GNU coreutils. This is a bug which is fixed in version 8.26.
https://lists.gnu.org/archive/html/bug-coreutils/2016-08/msg00016.html
So the alternative tool would be an up-to-date coreutils, or for example rsync
which is able to do that even with preserving permissions:
$ rsync -a --relative /sys/power/state /tmp/test
$ rsync -a --relative /sys/bus/cpu/drivers_autoprobe /tmp/test/
Though I see rsync has other problems for this particular sysfs files, see rsync option to disable verification?
Another harsh workaround would be to chmod
all the dirs after each cp
command.
$ find /tmp/test -type d -exec chmod $(umask -S) {} \;
(The find/chmod command above would also not work for any combination of existing permissions and umask.)
BTW you could report this bug to your Linux-Distribution and they might fix your 8.21 package via maintenance updates.