man lspci
в моей системе не показывает, что параметр -d может использоваться для отображения классов, но вы можете получить их имена в машиночитаемом режиме, таким образом, используя grep. То есть:
$ lspci -vmm | grep -B1 -A2 '^Class.*Ethernet'
Slot: 08:00.0
Class: Ethernet controller
Vendor: Intel Corporation
Device: 82574L Gigabit Network Connection
Еще один вариант - использовать sysfs напрямую. Т.е. вы можете найти все устройства Ethernet по строке 'c02' в модалиях:
$ find /sys/devices/ -name modalias | xargs grep -l c02
/sys/devices/pci0000:00/0000:00:1c.2/0000:03:00.0/modalias
^^^ PCI port
или с помощью systool:
$ systool -b pci -A modalias | awk '
/modalias.*c02/ {
system("/sbin/lspci -s " dev); }
{ dev = $1; }'
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 11)
Если вы можете использовать sftp
вместо scp
, тогда Match Group
] в sshd_config
может выполнить эту задачу за вас.
Следующие параметры должны быть включены в / etc / ssh / sshd_config
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory /home/%u
ForceCommand internal-sftp -u 002
. Вы также можете настроить chroot
для этого пользователя. ChrootDirectory должен содержать необходимые файлы и каталоги для поддержки сеанса пользователя.
Вы должны использовать scponly. Это особенно хорошо, если вы хотите ограничить только определенных пользователей и сохранить SSH с привилегиями на выполнение для других.
wget 'https://sourceforge.net/projects/scponly/files/scponly/scponly-4.8/scponly-4.8.tgz'