Почему /sys/devices/system/cpu0/cpufreq/scaling_setspeed не модифицируется sudo emacs?

Рабочее решение проверено на Ubuntu 14.04.3, но, вероятно, применимо к другим версиям Linux на базе Debian и, конечно, к Red Hat.
Если вы успешно примените это решение на еще не протестированной платформе, добавьте к нему короткий комментарий.
"Возможно" выше означает, что отчеты в сети показывают эквивалентные шаги на RH Linux и, я думаю, на Lubuntu тоже.
Шаги начинаются после завершения установки обычного tripwire пакета из вашего любимого репозитория.

Ссылки:
Man pages at TRIPWIRE(8) and TWADMIN(8), Official Red Hat Linux Reference Guide, Linux Security Cookbook.

$ uname -sivr
Linux 3.16.0-50-generic #67~14.04.1-Ubuntu SMP [...] x86_64
$ tripwire --version | head -1
Open Source Tripwire(R) 2.4.2.2.2 built for x86_64-unknown-linux-gnu

После установки пакета в системе создается каталог /etc/tripwire/. Он содержит как минимум 2 файла по умолчанию: twcfg.txt и twpol.txt. Кроме того, он может содержать локальный ключ, ${HOSTNAME}-local.key или просто local.key, и ключ сайта, site.key, если вы решили создать их, выбрав соответствующие парольные фразы во время установки.

Сначала выберите новое место для локальных ключей и ключей сайта, файлов конфигурации и политик, а также отчетов и файлов базы данных. Допустим, вы решили изменить стандартное место установки /etc/tripwire/ на монтируемое устройство в точке монтирования /mnt/TW-mount/:

$ sudo mkdir -p /mnt/TW-mount
$ sudo mount /dev/sdZZ /mnt/TW-mount && sudo mkdir -p /mnt/TW-mount/report
$ sudo mv /etc/tripwire/*.{txt,key} /mnt/TW-mount/

Замените sdZZ в инструкции по монтированию выше правильной информацией об устройстве.
Выбирая новое место, имейте в виду, что база данных TW для типичного Linux-компьютера на базе Debian занимает от 1,5 до 4 МБ. Кроме того, отчеты TW создаются при каждом запуске и накапливаются. Не ждите, что они сами по себе начнут вращаться ради вас. Несмотря на то, что их размер не превышает 10 кБ за штуку (после изменения файла политики в соответствии с конфигурацией вашей системы), эти накапливающиеся отчеты в конечном итоге потребуют вмешательства в виде ротации или очистки после нескольких месяцев ежедневных проверок TW.

Во-вторых, измените /etc/tripwire/twcfg.txt следующим образом:
(Настройки по умолчанию закомментированы. Новые настройки размещаются непосредственно под ними. Соответствующие строки простираются от POLFILE до LOCALKEYFILE. Другие значения флагов и глобальных переменных могут отличаться для вас.)

# /etc/tripwire/twcfg.txt --> moved to: /mnt/TW-mount/twcfg.txt
ROOT          =/usr/sbin
# POLFILE       =/etc/tripwire/tw.pol
POLFILE       =/mnt/TW-mount/tw.pol
# DBFILE        =/var/lib/tripwire/$(HOSTNAME).twd
DBFILE        =/mnt/TW-mount/$(HOSTNAME).twd
# REPORTFILE    =/var/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr
REPORTFILE    =/mnt/TW-mount/report/$(HOSTNAME)-$(DATE).twr
# SITEKEYFILE   =/etc/tripwire/site.key
SITEKEYFILE   =/mnt/TW-mount/site.key
# LOCALKEYFILE  =/etc/tripwire/$(HOSTNAME)-local.key
LOCALKEYFILE  =/mnt/TW-mount/$(HOSTNAME)-local.key
# /usr/bin/editor points to vim.gnome -- check yr own symlink
EDITOR        =/usr/bin/editor
# LATEPROMPTING =false
LATEPROMPTING =true 
# LOOSEDIRECTORYCHECKING =false
LOOSEDIRECTORYCHECKING =true
# MAILNOVIOLATIONS =true
MAILNOVIOLATIONS =false
EMAILREPORTLEVEL =3
REPORTLEVEL   =3
SYSLOGREPORTING =false
MAILMETHOD    =SMTP
# SMTPHOST      =localhost
SMTPHOST      =smtp.gmail.com
# SMTPPORT      =25
 SMTPPORT      =587
TEMPDIRECTORY =/tmp

Третье, /mnt/TW-mount/twpol.txt фактически переопределяет некоторые пути, установленные выше; вам также необходимо изменить его: (показаны только соответствующие строки. )

# Standard Debian Tripwire configuration - twpol.txt
# ....
# Global Variable Definitions
#
@@section GLOBAL
TWBIN = /usr/sbin;
# TWETC = /etc/tripwire;
TWETC = /mnt/TW-mount;
# TWVAR = /var/lib/tripwire;
TWVAR = /mnt/TW-mount;

Четвертое, если вы уже создали свои ключевые файлы, перейдите к пятому разделу; если нет, сделайте это сейчас:

$ sudo twadmin -m G -S /mnt/TW-mount/site.key   # to create yr site key
$ sudo twadmin -m G -L /mnt/TW-mount/${HOSTNAME}-local.key   # to create yr local key

Пятое, создайте и подпишите свой файл конфигурации и политики: tw.cfg, tw.pol в /mnt/TW-mount/:

$ cd /mnt/TW-mount
$ sudo twadmin -m F -c /mnt/TW-mount/tw.cfg -S site.key twcfg.txt
$ sudo twadmin -m P -c /mnt/TW-mount/tw.cfg -p tw.pol -S site.key twpol.txt

Примечание: На файл конфигурации tw.cfg ссылается абсолютный путь. В противном случае twadmin фактически создаст его в месте по умолчанию, /etc/tripwire/, и также будет ссылаться на него как на место по умолчанию. Вероятно, это жестко закодированная ошибка, которая не затрагивает другие соответствующие файлы, такие как tw.pol, *.key и *.tw{d,r}. Исправление исходного кода, вероятно, включает sed in-place манипуляции со строками перед компиляцией. Я предпочел работать с уже упакованным ресурсом и не дошел до этого.

Шестой, создайте или "инициализируйте вашу базу данных:

$ sudo tripwire -m i -c /mnt/TW-mount/tw.cfg -p tw.pol -S site.key -L ${HOSTNAME}-local.key

и запустите вашу первую (интерактивную) проверку:

$ sudo tripwire -m c -c /mnt/TW-mount/tw.cfg -I

Обратите внимание, что обычно (интерактивная) проверка запускается так: sudo tripwire -m c -I, где флаг -I обеспечивает интерактивность. Если вы измените местоположение по умолчанию для ресурсов tripwire, и из-за предполагаемой ошибки, упомянутой выше, вам всегда нужно будет объявлять, где находится подписанный файл конфигурации, который будет использоваться. Для этого используется короткая опция -c /mnt/TW-mount/tw.cfg. Если он опущен, вы получите поведение расположения по умолчанию:

$ sudo tripwire -m c -I
### Error: File could not be opened.
### Filename: /etc/tripwire/tw.cfg
### No such file or directory
### Configuration file could not be read.
### Exiting...
$

Last, перед открытием для работы:

$ sudo rm -i /mnt/TW-mount/*txt
$ sudo chmod 600 /mnt/TW-mount/*.key
$ sudo umount /mnt/TW-mount && sudo mount /dev/sdZZ /mnt/TW-mount -o ro,nouser,...

HTH.

2
26.01.2018, 01:36
1 ответ

Как упоминалось в комментариях, обычный метод установки скорости 1600 МГц:

echo 1600000 | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed

Для проверки эффекта используйте:

$ cd /sys/devices/system/cpu/cpu0/cpufreq/
$ paste <(ls *) <(cat *) | column -s $'\t' -t
affected_cpus                             0
cpuinfo_max_freq                          3500000
cpuinfo_min_freq                          800000
cpuinfo_transition_latency                4294967295
energy_performance_available_preferences  default performance balance_performance balance_power power 
energy_performance_preference             balance_performance
related_cpus                              0
scaling_available_governors               performance powersave
scaling_cur_freq                          807325
scaling_driver                            intel_pstate
scaling_governor                          powersave
scaling_max_freq                          3500000
scaling_min_freq                          800000
scaling_setspeed                          <unsupported>

На моей машине scaling_setspeedустановить нельзя, так как у меня i7 -6700HQ. То же самое и на моем старом i7 -3630QM 3-го поколения.

Таким образом, на этих платформах я установил бы scaling_min_freqи scaling_max_freqна одном уровне, и p_stateникогда не колебался бы. Тот же параметр, который я, вероятно, применил бы ко всем ЦП в .../cpu0/...- .../cpu7/...

.
0
27.01.2020, 22:09

Теги

Похожие вопросы