Это ссылка device
в каталогах классов, которую вы не должны использовать. Идея в том, что /sys/class/net/eth0
является символической ссылкой где-то под ссылкой /sys/devices
, а ссылка device
просто ссылается на (grand-)*родительский каталог; вместо использования ссылки device
, вы должны вернуться обратно в родительский каталог, если это необходимо.
Доступ к файлам в /sys/class/net/eth0/
нормальный.
Если вы обращаетесь к состоянию работы, найденному в /sys/class/net/eth0/operstate
, есть еще несколько. Названия определены в net/core/net-sysfs.c
, а константы в включают/uapi/linux/if.h
. Они взяты из RFC 2863.
.
Как описано в man-странице hosts_options(5)
, стандартный вывод перенаправляется на /dev/null
, так что нет шансов получить вывод из echo
. И так как Вы хотите, чтобы состояние выхода было принято во внимание, Вам следует использовать aclexec
вместо spawn
. Действительно, в man-странице сказано для aclexec
: "Соединение будет разрешено или запрещено в зависимости от того, возвращает ли команда истинное или ложное состояние выхода"