В основном sudo дает Вам административные привилегии. Если у Вас нет корневой учетной записи, и Ваш пользователь имеет ALL=(ALL) ALL
в /etc/sudoers
, затем Ваш пользователь является суперпользователем. Это не рекомендуется, так как можно выполнить команды с использованием административных привилегий sudo
и ВАШ пароль пользователя.
Администратор ДОЛЖЕН настроить sudo
допустить некоторые команды для пользователей, но некоторые задачи администрирования будет root
только, таким образом, root
настоящий суперпользователь.
Настоящая проблема состоит в том, что полномочия являются полномочием. БОЛЬШАЯ ЧАСТЬ защищенной системы будет иметь всего 1 суперпользователя, и это root
.
Посмотрите это
Intel имеет некоторый пример кода на их веб-сайте (tarball в верхней части страницы). Загрузите и скомпилируйте его, и это должно перечислить Ваши CPU. У меня нет itanium систем, таким образом, я не мог протестировать его, но я использовал этот код, когда у меня были вопросы о системах.
У Вас есть dmidecode установленным? Эта проблема просто предстала передо мной, и мне была нужна почти та же информация, которую Вы просите, и один из моих предложенных коллег dmidecode
.
# dmidecode -t processor | grep "Core Count"
Core Count: 4
Core Count: 4
Это указало бы, что существует 2 процессора с 4 ядрами каждый.
Полная информация, доступная для процессора, похожа:
Handle 0x0005, DMI type 4, 40 bytes
Processor Information
Socket Designation: LGA771/CPU2
Type: Central Processor
Family: Xeon
Manufacturer: Intel
ID: 7A 06 01 00 FF FB EB BF
Signature: Type 0, Family 6, Model 23, Stepping 10
Flags:
FPU (Floating-point unit on-chip)
VME (Virtual mode extension)
DE (Debugging extension)
PSE (Page size extension)
TSC (Time stamp counter)
MSR (Model specific registers)
PAE (Physical address extension)
MCE (Machine check exception)
CX8 (CMPXCHG8 instruction supported)
APIC (On-chip APIC hardware supported)
SEP (Fast system call)
MTRR (Memory type range registers)
PGE (Page global enable)
MCA (Machine check architecture)
CMOV (Conditional move instruction supported)
PAT (Page attribute table)
PSE-36 (36-bit page size extension)
CLFSH (CLFLUSH instruction supported)
DS (Debug store)
ACPI (ACPI supported)
MMX (MMX technology supported)
FXSR (Fast floating-point save and restore)
SSE (Streaming SIMD extensions)
SSE2 (Streaming SIMD extensions 2)
SS (Self-snoop)
HTT (Hyper-threading technology)
TM (Thermal monitor supported)
PBE (Pending break enabled)
Version: Intel(R) Xeon(R) CPU E5405 @ 2.00GHz
Voltage: 1.4 V
External Clock: 1333 MHz
Max Speed: 5000 MHz
Current Speed: 2000 MHz
Status: Populated, Enabled
Upgrade: Slot 1
L1 Cache Handle: 0x0008
L2 Cache Handle: 0x0009
L3 Cache Handle: Not Provided
Serial Number: Not Specified
Asset Tag: Not Specified
Part Number: Not Specified
Core Count: 4
Core Enabled: 4
Thread Count: 4
Characteristics: None
Таким образом, существует тонна информации, можно выйти из dmidecode.
Если у Вас есть совместимое POSIX /proc
структура, можно сделать это:
$ num_cores=$(grep -c '^processor' /proc/cpuinfo)
lscpu
дисплеи эта информация. Часть исходного кода lscpu
здесь.
Похож что lscpu
делает, заглядывают /sys/devices/system/cpu
и считает количество cpu?
каталоги. Таким образом, если Вы не хотите полагаться на внешнюю команду для определения количества CPU, Вы могли всегда делать это сами в сценарии или приложении.
Я стал слишком ленивым и вышел из чтения, прежде чем я выяснил, как определить количество ядер, сокетов, ядер на сокет, потоков на ядро и весь этот хороший материал, но если Вы читаете код в той ссылке, можно изобразить все это.