Отслеживаемость является проблемой.
Если пользователи когда-либо опрашиваются о действии, проводимом от их входа в систему, у них есть автоматическое, если это - стандартная рабочая процедура, что кто-то еще может войти в их учетную запись без первого изменения пароля.
Не рискуйте терять отслеживаемость своих системных администраторов и/или своих пользователей.
Я не вижу профессионалов.
Используйте стандартные инструменты Linux для осмотра аппаратных средств в системе.
cat /proc/scsi/scsi
или
ethtool -i eth0
или
dmidecode | grep -i vmware
Если вывод этих команд показывает аппаратные средства с названием производителя "VMware", Вы находитесь на VM VMware. Несколько команд обеспечиваются здесь, потому что конфигурации системы и инструменты отличаются.
Существует удобное приложение, которое могло бы помочь названный virt-какой. Я не использовал его с VMware, но это действительно работало приятно с Qemu.
Вы смогли добираться и идея путем оглядывания под /sys
. Например, /sys/class/dmi/id/sys_vendor
имеет значение VMware, Inc.
.
Если это установлено, можно использовать lshw. Команда lshw -class system
возвраты это в моей системе:
server1
description: Computer
product: VMware Virtual Platform
vendor: VMware, Inc.
version: None
serial: VMware-...
width: 64 bits
capabilities: smbios-2.4 dmi-2.4 vsyscall64 vsyscall32
Некоторые виртуальные среды называют некоторые свои виртуальные устройства с именами, которые являются немного контрольными, например, VirtualBox, представляющий видеокарту, которая называет себя "Адаптером дисплея VirtualBox". Но ища те связи Вы к конкретному VM и возможно узкому диапазону версий.
Для Вашего кода могло бы быть возможно видеть, какую виртуализацию это могло настроить. Если это перестало работать полностью, Вы могли бы быть в VM. Но Вы, как мог бы легко быть на поле, которое не имеет никаких способных аппаратных средств VM.
Вы могли также искать первую часть своего MAC-адреса здесь и видеть, перечислено ли это, как присвоено какой-либо из компаний по виртуализации.
Существует много кода там, чтобы обнаружить, если Вы находитесь в VM или нет. Запустите с красной таблетки и поиска оттуда. Данная статья в Наступательных Вычислениях является также хорошим чтением.
Это то, если ни один из тех легких выше работы :)
Мне не нравилось ни одно из этих решений, поскольку обычно существует драйвер CD-ROM VMware или драйвер памяти, установленный, таким образом, dmesg подтверждает или отклоняет его для меня быстро.
[server@user ~]$ dmesg |grep VMware hda: VMware Virtual IDE CDROM Drive, ATAPI CD/DVD-ROM drive Vendor: VMware Model: Virtual disk Rev: 1.0 Vendor: VMware Model: Virtual disk Rev: 1.0 Vendor: VMware Model: Virtual disk Rev: 1.0 Vendor: VMware Model: Virtual disk Rev: 1.0 Vendor: VMware Model: Virtual disk Rev: 1.0 Vendor: VMware Model: Virtual disk Rev: 1.0 Vendor: VMware Model: Virtual disk Rev: 1.0 VMware memory control driver initialized
facter virtual
xenu
указывает, что это виртуальная машина. Если он вернул «физический», то верно обратное (не виртуальная машина), например:
facter virtual
Physical
Для Linux вы набираете dmesg |grep DMI
:
[root@myhost ~]# dmesg |grep DMI DMI 2.3 present. DMI: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS 090006 05/23/2012 [root@myhost ~]# dmesg |grep -i virtual DMI: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS 090006 05/23/2012 Booting paravirtualized kernel on bare hardware input: Macintosh mouse button emulation as /devices/virtual/input/input1 scsi 0:0:0:0: Direct-Access Msft Virtual Disk 1.0 PQ: 0 ANSI: 4 input: Microsoft Vmbus HID-compliant Mouse as /devices/virtual/input/input4
[root@backdev1 ~]# dmesg |grep DMI DMI 2.5 present. DMI: IBM System x3650 M3 -[7945AC1]-/90Y4784, BIOS -[D6E153AUS-1.12]- 06/30/2011
Это сработало лучше, так как дает мне конкретную информацию о производителе и названии продукта.
dmidecode -t system|grep 'Manufacturer\|Product'
Выход на сервер Dell:
Manufacturer: Dell Inc.
Product Name: PowerEdge C5220
Выход на Virtualbox VM:
Manufacturer: innotek GmbH
Product Name: VirtualBox
Выход на KVM/QEMU:
Manufacturer: QEMU
Product Name: Standard PC (i440FX + PIIX, 1996)
Это отлично подходит для скриптов, которые могут разобрать их для лучшей идентификации серверов... но если Вы используете Chef в своей инфраструктуре, Вы можете проверить атрибут узла Виртуализация -> система
на сервере Chef .
Мне очень нравится:
hostnamectl status
или конкретный:
hostnamectl status | grep "Chassis:"
Как проверить, если Система Linux является физической или виртуальной машиной
16 методов проверки, является ли система Linux физической или виртуальной машиной
Вещи несколько изменились за почти 11 лет с тех пор, как был задан этот вопрос.
Если вы используете дистрибутив с установленным systemd (относительно исходного вопроса OP, SLES использует systemd начиная с v12), systemd-detect-virt, вероятно, будет работать, не требует root и выдает наиболее удобный для сценариев вывод без требуется дальнейшее массирование:
$ systemd-detect-virt
vmware