Меню сайта |
|
|
|
$ echo "hint.apic.0.disabled=1" >> /boot/loader.conf |
text/html; opera %s >/dev/null 2>&1
application/pdf; xpdf %s > /dev/null 2>&1
application/msword; ooffice %s > /dev/null 2>&1
image/*; qiv %s >/dev/null 2>&1 |
Самая распространенная конфигурация — запуск php-скриптов от пользователя nobody. Но в этом случае невозможно определить, какой пользователь отправил письмо со спамом. Для разрешения этой ситуации, существует специальный php mail header патч (http://choon.net/php-mailheader. php). После его установки в хедерах каждого письма будет строка типа: «X-PHPScript: cup.su/mail.php for 213.180.204.8». Вычислить спамера не составит труда, и у тебя будет весомый аргумент перед дата-центром. Можешь смело заявлять, что аккаунт спамера известен и будет немедленно удален, а твоей сервер трогать ни в коем случае не нужно! |
Следует удостоверится, что ядро собрано с поддержкой устройств:
device da device scbus device pass
Загружаем модуль поддержки USB Mass Storage:
# kldload umass.ko
Загружаем USB-демона:
# /usr/sbin/usbd
Вставляем flash-disk в USB-порт. Смотрим в /var/log/messages:
Aug 5 17:33:49 hole /kernel: umass0: vendor 0x0c76 product 0x0005, rev 1.10/1. 00, addr 4 Aug 5 17:33:49 hole /kernel: da2 at umass-sim0 bus 0 target 0 lun 0 Aug 5 17:33:49 hole /kernel: da2: Removable Direct Access SCSI-2 device Aug 5 17:33:49 hole /kernel: da2: 650KB/s transfers Aug 5 17:33:49 hole /kernel: da2: 62MB (127091 512 byte sectors: 64H 32S/T 62C )
Посмотрим, что говорит camcontrol:
# camcontrol rescan all Re-scan of bus 0 was successful # camcontrol devlist -v scbus1 on umass-sim0 bus 0: ...
Посмотрим что говорит usbdevs:
# usbdevs -v Controller /dev/usb0: addr 1: self powered, config 1, UHCI root hub(0x0000), Intel(0x0000), rev 0x0100 port 1 addr 4: power 100 mA, config 1, product 0x0005(0x0005), vendor 0x0c76(0 x0c76), rev 0x0100 ...
Смотрим, что говорит fdisk
# fdisk da2 ... Information from DOS bootblock is: The data for partition 1 is: sysid 6,(Primary 'big' DOS (> 32MB)) start 32, size 126688 (61 Meg), flag 80 (active) beg: cyl 0/ head 1/ sector 1; end: cyl 359/ head 10/ sector 32 ...
Монтируем файловую систему:
# mount_msdos /dev/da2s1 /mnt/umass
В версиях 5.1 и выше достаточно подгрузить модуль umass.ko, запустить /usr/sbin/usbd и вставить flash-disk в USB-порт. |
$ fetch ftp://ftp.cronyx.ru/pub/cronyx/omega/ombsd18.tgz$ tar xfvz ombsd18.tgz $ cd ombsd # patch -N -r "" -d /sys/isa < sio46.pch # cd /dev # for d in 2 3 4 5 6 7 8 9 a b c d e f g h h i j k l m n o p q r s t u v ; \ do ./MAKEDEV ttyd$d cuaa$d; done
ВНИМАНИЕ! В файл описания ядра ничего писать не надо. Конфигурируем, собираем и устанавливаем новое ядро. # reboot
После перезагрузки: $ dmesg | grep sio siopci0: port 0x6700-0x670f,0x6600-0x667f,0x6500-0x657f irq 10 at device 9.0 o n pci0 sio2: type ST16650A with 64 bytes FIFO sio3: type ST16650A with 64 bytes FIFO sio4: type ST16650A with 64 bytes FIFO sio5: type ST16650A with 64 bytes FIFO sio6: type ST16650A with 64 bytes FIFO sio7: type ST16650A with 64 bytes FIFO sio8: type ST16650A with 64 bytes FIFO sio9: type ST16650A with 64 bytes FIFO |
Преобразовать обычный текста в формат PostScript можно с помощью утилиты a2ps. Её удобно использовать для печати обычных ASCII файлов (подробно о настройке lpd-фильтров печати и сетевой печати, отдельная страница этого сайта посвящена вопросам безопасности). Основная проблема с русскими буквами.
Чтобы появились русские буквы:
Смотрим, где a2ps ищет шрифты:
a2ps --list=defaults
Скачиваем русские шрифты i18n-fonts-0.1.tar.gz (или более новую версию, если она появилась). Эти шрифты можно найти на многих ftp-серверах, в частности, на ftp://ftp.enst.fr/pub/unix/a2ps/.
Распаковываем этот архив. Там есть две директории: afm и fonts. Копируем их содержимое в соответствующие директории, выданные командой a2ps --list=defaults.
Запускаем скрипт afm/make_fonts_map.sh. Он находится в той же директории, что и .afm-файлы (есть он и в дистрибутиве шрифтов). Он создаёт файл fonts.map.new, этим файлом надо заменить существующий fonts.map.
Всё шрифты привязаны.
Пробуем:
a2ps -X koi8 text >text.ps
Если вы не хотите каждый раз указывать кодировку вручную, то поправьте конфигурационный файл (я предпочитаю править /usr/local/etc/a2ps-site.cfg). Укажите в нём:
Options: --encoding=koi8 |
Проще всего воспользоваться системой LaTeX.
Сперва делаем PostScript:
#!/bin/sh
f=DBI
pod2latex -out $f.t $f.pm
( cat doc-head-12pt.tex
perl -pe 's/section\*/section/g' $f.t.tex
cat doc-tail.tex ) > $f.tex
latex $f.tex
latex $f.tex
dvips -o $f.ps $f.dvi
Совет: если вы создаёте русский POD-документ и вам выдаётся странная ошибка, что POD не обнаружен, то поправьте в модуле Pod::Find строчку unless(-f $file && -T _ && ($file =~ /\.(pod|pm|plx?)\z/i || -x _ )). Выкиньте из неё проверку -T — она не воспринимает файл, как текстовый, если в нём есть не-ASCII символы, коими являются русские буквы.
Здесь предполагается, что DBI.pm (или любой другой файл с POD-документацией) находится в текущей директории, а файлы doc-head-12pt.tex и doc-tail.tex имеют примерно следующее содержание:
файл doc-head-12pt.tex:
% Задаём глобальные атрибуты документа
%\documentclass[11pt, twocolumn]{article}
\documentclass[11pt]{article}
%\usepackage[magstep2]{scale}
%\usepackage[a3paper]{geometry}
% Изменяем поля
\addtolength{\hoffset}{-.9in}
\addtolength{\textwidth}{1.8in}
\addtolength{\voffset}{-1.1in}
\addtolength{\textheight}{2.2in}
% Отступ абзацев
\setlength{\parindent}{1cm}
% Расстояние между абзацами
\setlength{\parskip}{0pt}
% Русский стиль оформления абзацев
%\usepackage{indentfirst}
% Оговариваем кодировку документа
% (обычно POD-документы англоязычны, но вы можете создать
% свой собственный на любом языке)
%\usepackage[cp866]{inputenc}
% \usepackage[koi8-r]{inputenc}
% \usepackage[russian]{babel}
% \selectlanguage{russian}
%\usepackage{draftcopy}
% Включаем графический пакет
% (это только для опытных пользователей, которые
% сами разрабатывают документацию в POD)
%\usepackage[dvips]{graphicx}
%\graphicspath{{ps/}}
% Макрос для вставки картинок
%\newcommand{\inspsfig}[3]{
%\begin{figure}[!htbp]
%\begin{center}
%\includegraphics[angle=0, width=#2\textwidth]{#1}
%\end{center}
%\caption{#3}
%\label{text}
%\end{figure}
%}
% Задаём межстрочный интервал
\linespread{1}
% Документ начался
\begin{document}
% В начале документа генерируем оглавление и ...
\tableofcontents
% ... список иллюстраций
%\listoffigures
% Можно начать документ со следующей страницы
\newpage
% а можно просто задать отступ
%\vspace{50mm}
Большинство директив здесь закомментированны, но они могу оказать полезны. А иные вам, возможно, захочется закомментировать.
файл doc-tail.tex:
\end{document}
Скрипт создаёт PS-файл с которым можно сделать любые преобразования. Например, если на выходе нужен буклет, то это можно сделать так:
#/bin/sh
f=DBI
pstops '4:-3L@.7(21cm,0)+0L@.7(21cm,14.85cm)' $f.ps $f-up.ps
pstops '4:1L@.7(21cm,0)+-2L@.7(21cm,14.85cm)' $f.ps $f-down.ps
Получатся два файла (у нас: DBI-up.ps и DBI-down.ps). Это все верхние и все нижние странички. То есть печатаете сперва верхние, потом переворачиваете всю пачку и печатаете нижние. Потом складываете пачку пополам, прошиваете, и буклет готов.
Все полученные PSы можно переделать в PDFы:
#/bin/sh
gs -sOutputFile=${1%.ps}.pdf \
-dBATCH -dNOPAUSE \
-sPAPERSIZE=a4 \
-sDEVICE=pdfwrite \
$1 |
Очень удобный способ генерации паролей:
openssl rand -base64 24 |
Для генерации md5-сумм существуют отдельные утилиты (под FreeBSD — md5, под Linux — md5sum), но выдают информацию в разных форматах. openssl — более универсальный метод:
openssl md5 файл |
Зашифровать файл:
openssl enc -aes-256-cbc -salt -in входной_файл -out зашифрованный_файл
Эта команда дважды спросит пароль для шифрования.
openssl enc -d -aes-256-cbc -in зашифрованный_файл -out расшифрованный_файл
Спросит пароль.
Того же самого эффекта можно доиться, управляя стандартными потоками:
# шифруем
openssl enc -aes-256-cbc -salt < входной_файл > зашифрованный_файл # расшифровываем
openssl enc -d -aes-256-cbc < зашифрованный_файл > расшифрованный_файл
Полезный пример:
# создаём защищённый паролем tar-архив
tar czf - your_dir | openssl enc -aes-256-cbc -salt >file.tgz # распаковываем этот архив
openssl enc -d -aes-256-cbc < file.tgz | tar xzf - |
Создать patch:
diff старый_файл новый_файл > patch_файл
Наложить patch:
patch старый_файл patch_файл
Естественно порядок файлов везде важен. |
Во FreeBSD есть две утилиты для подсчёта md5-сумм файлов. Они выдают один а тот же результат, но в несколько разном формате, что очень неудобно, если надо сравнить файлы (по суммам), лежащие на машинах. Поэтому я написал маленький скрипт, эмитирующий поведение недостающей утилиты.
!/bin/sh md5 -- "$@" | sed -E 's/^MD5 \((.*)\) = ([^[:space:]]+)/\2 \1/'
Они, конечно, не позволяют использовать ключи командной строки, но обычно это как раз то, что нужно. |
Очень полезная утилита smartctl
/usr/local/sbin/smartctl -a /dev/ad4
выдаст полную информацию по указанному диску, вот лишь, некоторые поля:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000f 100 100 051 Pre-fail Always - 0
3 Spin_Up_Time 0x0007 253 253 025 Pre-fail Always - 5760
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 77
7 Seek_Error_Rate 0x000f 253 253 051 Pre-fail Always - 0
8 Seek_Time_Performance 0x0025 253 253 015 Pre-fail Offline - 0
9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 5899
10 Spin_Retry_Count 0x0033 253 253 051 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 61
194 Temperature_Celsius 0x0022 050 043 000 Old_age Always - 50
196 Reallocated_Event_Count 0x0032 253 253 000 Old_age Always - 0
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x000a 100 100 000 Old_age Always - 0
201 Soft_Read_Error_Rate 0x000a 100 100 000 Old_age Always - 0
202 TA_Increase_Count 0x0032 253 253 000 Old_age Always - 0
На самом деле информации выдаётся на много больше.
Информация о нагрузке на диски в реальном масштабе времени: gstat и iostat -w 1.
Информация о swap'e: swapctl -lh
Информация о всех открытых файлах fstat.
Есть ещё systat. |
Демон печати по умолчанию запускается в очень беспечном режиме, позволяя практически кому угодно использовать вашу машину для печати. Чтобы оставить право печати только себе, запустите lpd с ключом -s:
killall lpd lpd -s
Чтобы сервер запускался сам с этим ключом, при старте системы, добавьте в /etc/rc.conf строки:
lpd_enable="YES" lpd_flags="-s" |
По умолчанию syslogd запускается с ключом -s, это обеспечивает некоторый уровень защиты. Но чтобы демон не пытался слушать внешние порты, его следует запускать с ключом -ss. Для этого пишем в /etc/rc.conf:
syslogd_flags="-ss" |
Все просто, потому и быстро забывается ;) 1. Устанавливаем:
root@localhost# pkg_add -r ntp
2. Записываем в /etc/crontab:
55 23 * * * root /usr/sbin/ntpdate ntp.rinet.ru
Думаю, за пять минут до полуночи, раз в сутки - достаточно для весьма точной синхронизации времени. P.S.: ntp.rinet.ru - это сервер точного времени моего провайдера. В принципе, открыт для всего интернета, но лучше поискать ближайший. | | |
Форма входа |
|
|
Поиск |
|
|
Друзья сайта |
|
|
Статистика |
Онлайн всего: 1 Гостей: 1 Пользователей: 0 |
links |
|
|
|