<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Блог сисадмина &#187; Howto</title>
	<atom:link href="http://avz.org.ua/wp/category/tips-and-tricks/feed/" rel="self" type="application/rss+xml" />
	<link>http://avz.org.ua/wp</link>
	<description>Заметки о Linux и прочие полезные howto</description>
	<lastBuildDate>Fri, 30 Jul 2010 18:37:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>PuTTY: делаем Windows полезным</title>
		<link>http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/</link>
		<comments>http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 16:14:06 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ *nix]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://avz.org.ua/wp/?p=840</guid>
		<description><![CDATA[В данной статье будет описано как строить SSH-туннели с помощью PuTTY. 1. Локальный проброс порта Рассмотрим следующую ситуацию. Мы находимся внутри корпоративной сети, у нашего компьютера адрес 192.168.0.2, доступ во внешний мир полностью закрыт (то есть никакого NAT-а, proxy и т.п.). Влиять на политику ограничения доступа у нас возможности нет, но зато есть SSH-доступ на [...]


Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2009/07/21/useful-windows-command/' rel='bookmark' title='Permanent Link: Полезные команды windows'>Полезные команды windows</a> <small>Ниже приведены некоторые полезные для системных администраторов команды, которые можно использовать в .bat-файлах и различных скриптах для автоматизации. Посмотреть ip-адреса...</small></li>
<li><a href='http://avz.org.ua/wp/2009/01/25/windows-syslog/' rel='bookmark' title='Permanent Link: Remote syslog из Windows'>Remote syslog из Windows</a> <small>Для реализации сабжа можно использовать утилиту logger.exe. Пример: echo &quot;This is a test message&quot; | logger.exe -l 10.20.30.40 -m udp...</small></li>
<li><a href='http://avz.org.ua/wp/2009/06/04/win-pass-rese/' rel='bookmark' title='Permanent Link: Сброс пароля администратора в Windows'>Сброс пароля администратора в Windows</a> <small>&ndash; Кто такой фармацевт? &ndash; Это тот, кто частенько форматирует диск С:\ Представим себе ситуацию, когда нам в админское хозяйство...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>В данной статье будет описано как строить SSH-туннели с помощью PuTTY.</p>
<h3>1. Локальный проброс порта</h3>
<p>Рассмотрим следующую ситуацию. Мы находимся внутри корпоративной сети, у нашего компьютера адрес 192.168.0.2, доступ во внешний мир полностью закрыт (то есть никакого NAT-а, proxy и т.п.). Влиять на политику ограничения доступа у нас возможности нет, но зато есть SSH-доступ на один из серверов с маршрутизируемым IP-адресом, который доступен из Интернет. Внутренний адрес этого сервера, пусть будет для примера 192.168.0.3. Структура сети изображена на рисунке:<br />
<a rel="attachment wp-att-866" href="http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/schema/"><img class="aligncenter size-full wp-image-866" title="schema" src="http://avz.org.ua/wp/wp-content/uploads/2010/06/schema.png" alt="Схема сети" width="364" height="322" /></a><br />
Предположим, что нам очень нужно подключиться, к примеру, по SSH на некоторый удалённый сервер с IP-адресом 212.212.212.212 где-то далеко в Интернет. Для этого запускаем PuTTY, создаём SSH-подключение к серверу 192.168.0.3 (далее по тексту SSH-сессия 1), идем в пункт Tunnels:<br />
<a href="http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/00-2/" rel="attachment wp-att-908"><img src="http://avz.org.ua/wp/wp-content/uploads/2010/06/00-540x257.png" alt="Local port forwarding" title="00" width="540" height="257" class="aligncenter size-large wp-image-908" /></a><br />
и указываем, что локальный порт 2222 нашего компьютера должен быть поставлен в соответствие порту 22 на сервере с IP-адресом 212.212.212.212. Далее жмем кнопку &laquo;Open&raquo;, авторизуемся на сервере 192.168.0.3. Затем создаём ещё одно подключение (далее по тексту SSH-сессия 2), но уже на localhost, порт 2222 и жмём кнопку &laquo;Open&raquo;:<a rel="attachment wp-att-880" href="http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/attachment/02/"><img class="aligncenter size-thumbnail wp-image-880" title="02" src="http://avz.org.ua/wp/wp-content/uploads/2010/06/02-300x286.png " alt="Окно создания нового подключения" width="300" height="286" /></a>В результате SSH-сессия 2 будет туннелироваться (т.е. будет установлена внутри ранее установленной SSH-сессии 1). Для удалённого сервера 212.212.212.212 всё будет выглядеть так, как будто к нему подключается 111.111.111.111:<br />
<a rel="attachment wp-att-875" href="http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/schema1/"><img class="aligncenter size-full wp-image-875" title="schema1" src="http://avz.org.ua/wp/wp-content/uploads/2010/06/schema1.png" alt="Схема подключения через SSH-туннель" width="563" height="435" /></a></p>
<h3>2. Удалённый проброс порта</h3>
<p>В этом случае подключение внутри SSH-туннеля устанавливается в другую сторону&nbsp;–&nbsp;от удаленного сервера на наш локальный компьютер. Может быть полезно, если требуется открыть доступ к локальным сервисам нашего компьютера. Рассмотрим ту же сеть, что и в пункте 1, но для простоты предположим, что теперь у нас есть NAT:<br />
<a rel="attachment wp-att-887" href="http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/schema_remote/"><img class="aligncenter size-full wp-image-887" title="schema_remote" src="http://avz.org.ua/wp/wp-content/uploads/2010/06/schema_remote.png" alt="Локальная сеть с NAT, remote port forwarding" width="286" height="318" /></a><br />
Здесь уже у нас есть возможность подключаться через SSH напрямую к 212.212.212.212 благодаря наличию NAT-а. А вот 212.212.212.212 подключиться на 192.168.0.2 без специальных ухищрений, понятное дело, не сможет, т.к. 192.168.0.2 не подключен к Интернет непосредственно. Предположим, что пользователю, сидящему под X-ами на 212.212.212.212 нужно через remote desktop попасть на наш компьютер 192.168.0.2. Для этого в SSH-сеансе подключения с 192.168.0.2 на 212.212.212.212 нужно изменить настройки в разделе Tunnels следующим образом:<br />
<a rel="attachment wp-att-888" href="http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/attachment/03/"><img class="aligncenter size-thumbnail wp-image-888" title="03" src="http://avz.org.ua/wp/wp-content/uploads/2010/06/03-540x258.png" alt="Remote ssh port forwarding setup" width="540" height="258" /></a><br />
В результате после успешной авторизации на 212.212.212.212 можно увидеть следующее:</p>
<div class="geshi no bash">
<div class="head">#lsof -i -nP | grep 3333</div>
<ol>
<li class="li1">
<div class="de1">sshd &nbsp;<span class="nu0">18598</span> &nbsp; avz &nbsp; 11u &nbsp;IPv4 <span class="nu0">592868957</span> &nbsp; TCP <span class="nu0">127.0</span><span class="nu0">.0</span><span class="nu0">.1</span>:<span class="nu0">3333</span> <span class="br0">&#40;</span>LISTEN<span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p>То есть sshd ожидает подключений на TCP-порт 3333, которые затем по SSH-туннелю будут перенаправлены на 192.168.0.2 порт 3389. И юзер сидящий за 212.212.212.212 сможет с помощью rdesktop увидеть наш рабочий стол:</p>
<p><a rel="attachment wp-att-891" href="http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/schema_remote_tunnel/"><img class="aligncenter size-full wp-image-891" title="schema_remote_tunnel" src="http://avz.org.ua/wp/wp-content/uploads/2010/06/schema_remote_tunnel.png" alt="Remote port forwarding via putty" width="387" height="381" /></a></p>
<h3>3. Socks-proxy</h3>
<p>В этом случае мы можем использовать сервер с SSH-демоном как промежуточный (proxy). Схема сети как в случае #1 (без NAT и штатных прокси):<br />
<a rel="attachment wp-att-896" href="http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/socks_schema/"><img class="aligncenter size-full wp-image-896" title="socks_schema" src="http://avz.org.ua/wp/wp-content/uploads/2010/06/socks_schema.png" alt="Схема сети" width="295" height="386" /></a><br />
Чтобы заставить PuTTY испольнять роль socks-прокси, нужно параметры SSH-сессии с 192.168.0.2 на 192.168.0.3 изменить следующим образом:<br />
<a rel="attachment wp-att-897" href="http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/attachment/04/"><img class="aligncenter" title="04" src="http://avz.org.ua/wp/wp-content/uploads/2010/06/04-540x258.png" alt="Dynamic" width="540" height="258" /></a>В результате после успешной авторизации со стороны клиента можно будет наблюдать следующее:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">C:\<span class="sy0">&gt;</span>netstat -ano <span class="sy0">|</span> <span class="kw2">find</span> <span class="st0">&quot;1080&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; TCP &nbsp; &nbsp;<span class="nu0">127.0</span><span class="nu0">.0</span><span class="nu0">.1</span>:<span class="nu0">1080</span> &nbsp; &nbsp; <span class="nu0">0.0</span><span class="nu0">.0</span><span class="nu0">.0</span>:<span class="nu0">0</span> &nbsp; &nbsp; &nbsp;LISTENING &nbsp; &nbsp; &nbsp; <span class="nu0">2392</span></div>
</li>
<li class="li1">
<div class="de1">C:\<span class="sy0">&gt;</span>tasklist <span class="sy0">|</span> <span class="kw2">find</span> <span class="sy0">/</span>i <span class="st0">&quot;2392&quot;</span></div>
</li>
<li class="li1">
<div class="de1">putty.exe &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">2392</span> Console &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="nu0">5420</span> КБ</div>
</li>
</ol>
</div>
<p>То есть putty, выполняющийся с PID-ом 2392, начинает слушать порт 1080, ожидая подключений. Далее берем любое приложение, умеющее работать с SOCKS-прокси, например Firefox, и указываем ему использовать наш прокси:<br />
<a href="http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/firefox/" rel="attachment wp-att-919"><img src="http://avz.org.ua/wp/wp-content/uploads/2010/06/firefox.png" alt="Firefox proxy configuration dialog" title="firefox" width="579" height="472" class="aligncenter size-full wp-image-919" /></a>Теперь все запросы от броузера будут проходить через сервер 192.168.0.3. В логах веб-сайтов, по которым мы таким образом будем ходить, будет отображаться внешний IP-адрес нашего сервера &#8211; 111.111.111.111.</p>
<p>P.S. Из help-файла Putty 0.58:<br />
<cite>Question A.10.3: What does ‘PuTTY’ mean?<br />
It&#8217;s the name of a popular SSH and Telnet client. Any other meaning is in the eye of the beholder. It&#8217;s been rumoured that ‘PuTTY’ is the antonym of ‘getty’, or that it&#8217;s the stuff that makes your Windows useful&#8230;</cite> :)</p>


<p>Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2009/07/21/useful-windows-command/' rel='bookmark' title='Permanent Link: Полезные команды windows'>Полезные команды windows</a> <small>Ниже приведены некоторые полезные для системных администраторов команды, которые можно использовать в .bat-файлах и различных скриптах для автоматизации. Посмотреть ip-адреса...</small></li>
<li><a href='http://avz.org.ua/wp/2009/01/25/windows-syslog/' rel='bookmark' title='Permanent Link: Remote syslog из Windows'>Remote syslog из Windows</a> <small>Для реализации сабжа можно использовать утилиту logger.exe. Пример: echo &quot;This is a test message&quot; | logger.exe -l 10.20.30.40 -m udp...</small></li>
<li><a href='http://avz.org.ua/wp/2009/06/04/win-pass-rese/' rel='bookmark' title='Permanent Link: Сброс пароля администратора в Windows'>Сброс пароля администратора в Windows</a> <small>&ndash; Кто такой фармацевт? &ndash; Это тот, кто частенько форматирует диск С:\ Представим себе ситуацию, когда нам в админское хозяйство...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Программный RAID в Linux</title>
		<link>http://avz.org.ua/wp/2010/06/22/linux-software-raid/</link>
		<comments>http://avz.org.ua/wp/2010/06/22/linux-software-raid/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 08:33:22 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ *nix]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[raid]]></category>

		<guid isPermaLink="false">http://avz.org.ua/wp/?p=801</guid>
		<description><![CDATA[Есть программный RAID-массив уровня 1. Однажды сервер прислал письмо, что с RAID-ом проблемы: Date: Mon, 14 Jun 2010 11:18:44 +0300 From: mdadm monitoring &#60;root@some.server.org&#62; To: root@some.server.org Subject: DegradedArray event on /dev/md1:some.server.org This is an automatically generated mail message from mdadm running on some.server.org A DegradedArray event had been detected on md device /dev/md1. Faithfully yours, [...]


Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2009/02/02/linuxquotas/' rel='bookmark' title='Permanent Link: Дисковые квоты в Linux'>Дисковые квоты в Linux</a> <small>Включение дисковых квот в Linux. Взято с http://www.yolinux.com/TUTORIALS/LinuxTutorialQuotas.html Редактируем файл /etc/fstab, добавляя параметры &laquo;usrquota&raquo; и/или &laquo;grpquota&raquo; в строки для нужного...</small></li>
<li><a href='http://avz.org.ua/wp/2009/02/03/initrd-rebuild/' rel='bookmark' title='Permanent Link: Пересборка initrd'>Пересборка initrd</a> <small>Пример как пересобрать initrd для поддержки определенного железа. Взято с http://forums.fedoraforum.org/archive/index.php/t-138530.html. This problem on CentOS: http://www.centos.org/modules/newbb/viewtopic.php?topic_id=10855 I made it for...</small></li>
<li><a href='http://avz.org.ua/wp/2009/06/18/cd-burn-inlinux/' rel='bookmark' title='Permanent Link: Пишем CD/DVD-диски в linux'>Пишем CD/DVD-диски в linux</a> <small>Из консоли диски можно записывать программой cdrecord (она же wodim). Для доступа к приводу используется интерфейс SCSI GENERIC (sg). Работать...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Есть программный RAID-массив уровня 1. Однажды сервер прислал письмо, что с RAID-ом проблемы:</p>
<div style="font-style: italic">
Date: Mon, 14 Jun 2010 11:18:44 +0300<br />
From: mdadm monitoring &lt;root@some.server.org&gt;<br />
To: root@some.server.org<br />
Subject: DegradedArray event on /dev/md1:some.server.org</p>
<p>This is an automatically generated mail message from mdadm running on some.server.org<br />
A DegradedArray event had been detected on md device /dev/md1.<br />
Faithfully yours, etc.<br />
P.S. The /proc/mdstat file currently contains the following:<br />
Personalities : [raid1] [raid6] [raid5] [raid4] [raid0]<br />
md1 : active raid1 sdb1[0]<br />
      156288256 blocks [2/1] [U_]<br />
md0 : active raid1 sdc3[1] sda3[0]<br />
      4192896 blocks [2/2] [UU]<br />
unused devices: &lt;none&gt;</p></div>
<p>Здесь видно, что у массива md1 отвалился один из двух компонентов (знак подчеркивания вместо буквы U в /proc/mdstat). Через fdisk -l вычисляем имя второго компонента массива и видим, что на устройстве /dev/sdd вообще отсутствуют разделы:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>root<span class="sy0">@</span>~<span class="br0">&#93;</span><span class="co0"># fdisk -l /dev/sdd</span></div>
</li>
<li class="li1">
<div class="de1">Диск <span class="sy0">/</span>dev<span class="sy0">/</span>sdd: <span class="nu0">160.0</span> ГБ, <span class="nu0">160041885696</span> байт</div>
</li>
<li class="li1">
<div class="de1"><span class="nu0">255</span> heads, <span class="nu0">63</span> sectors<span class="sy0">/</span>track, <span class="nu0">19457</span> cylinders</div>
</li>
<li class="li1">
<div class="de1">Единицы = цилиндры по <span class="nu0">16065</span> <span class="sy0">*</span> <span class="nu0">512</span> = <span class="nu0">8225280</span> байт</div>
</li>
<li class="li1">
<div class="de1">На диске <span class="sy0">/</span>dev<span class="sy0">/</span>sdd отсутствует верная таблица разделов</div>
</li>
</ol>
</div>
<p>Для сравнения смотрим на второй диск массива:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>root<span class="sy0">@</span>~<span class="br0">&#93;</span><span class="co0"># fdisk -l /dev/sdb</span></div>
</li>
<li class="li1">
<div class="de1">Диск <span class="sy0">/</span>dev<span class="sy0">/</span>sdb: <span class="nu0">160.0</span> ГБ, <span class="nu0">160041885696</span> байт</div>
</li>
<li class="li1">
<div class="de1"><span class="nu0">255</span> heads, <span class="nu0">63</span> sectors<span class="sy0">/</span>track, <span class="nu0">19457</span> cylinders</div>
</li>
<li class="li1">
<div class="de1">Единицы = цилиндры по <span class="nu0">16065</span> <span class="sy0">*</span> <span class="nu0">512</span> = <span class="nu0">8225280</span> байт</div>
</li>
<li class="li1">
<div class="de1">Устр-во Загр &nbsp; Начало &nbsp; &nbsp;Конец &nbsp; &nbsp; &nbsp;Блоки &nbsp;Id &nbsp;Система</div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">/</span>dev<span class="sy0">/</span>sdb1 &nbsp;<span class="sy0">*</span> &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">1</span> &nbsp; &nbsp;<span class="nu0">19457</span> &nbsp;<span class="nu0">156288321</span> &nbsp;fd &nbsp;Автоопределение Linux raid</div>
</li>
</ol>
</div>
<p>Следовательно, нужно содать на sdd раздел типа &laquo;fd&raquo; (linux raid autodetect) и добавить этот раздел в массив.</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>root<span class="sy0">@</span>~<span class="br0">&#93;</span><span class="co0"># fdisk /dev/sdd</span></div>
</li>
<li class="li1">
<div class="de1">Команда <span class="br0">&#40;</span>m для справки<span class="br0">&#41;</span>: n</div>
</li>
<li class="li1">
<div class="de1">Действие команды</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;e &nbsp; расширенный</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;p &nbsp; основной раздел <span class="br0">&#40;</span><span class="nu0">1</span><span class="nu0">-4</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">p</div>
</li>
<li class="li1">
<div class="de1">Номер раздела <span class="br0">&#40;</span><span class="nu0">1</span><span class="nu0">-4</span><span class="br0">&#41;</span>: <span class="nu0">1</span></div>
</li>
<li class="li1">
<div class="de1">Первый цилиндр <span class="br0">&#40;</span><span class="nu0">1</span><span class="nu0">-19457</span>, по умолчанию <span class="nu0">1</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">Используется значение по умолчанию <span class="nu0">1</span></div>
</li>
<li class="li1">
<div class="de1">Последний цилиндр или +<span class="kw2">size</span> или +sizeM или +sizeK <span class="br0">&#40;</span>по умолчанию <span class="nu0">19457</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">Используется значение по умолчанию <span class="nu0">19457</span></div>
</li>
<li class="li1">
<div class="de1">Команда <span class="br0">&#40;</span>m для справки<span class="br0">&#41;</span>: t</div>
</li>
<li class="li1">
<div class="de1">Выбранный раздел <span class="nu0">1</span></div>
</li>
<li class="li1">
<div class="de1">Шестнадцатеричный код <span class="br0">&#40;</span>введите L для получения списка кодов<span class="br0">&#41;</span>: fd</div>
</li>
<li class="li1">
<div class="de1">Системный тип раздела <span class="nu0">1</span> изменен на fd <span class="br0">&#40;</span>Автоопределение Linux raid<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">Команда <span class="br0">&#40;</span>m для справки<span class="br0">&#41;</span>: <span class="kw2">w</span></div>
</li>
<li class="li1">
<div class="de1">Таблица разделов была изменена<span class="sy0">!</span></div>
</li>
<li class="li1">
<div class="de1">Вызывается ioctl<span class="br0">&#40;</span><span class="br0">&#41;</span> для перечитывания таблицы разделов.</div>
</li>
<li class="li1">
<div class="de1">Синхронизируются диски.</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>root<span class="sy0">@</span> ~<span class="br0">&#93;</span><span class="co0"># fdisk -l /dev/sdd</span></div>
</li>
<li class="li1">
<div class="de1">Диск <span class="sy0">/</span>dev<span class="sy0">/</span>sdd: <span class="nu0">160.0</span> ГБ, <span class="nu0">160041885696</span> байт</div>
</li>
<li class="li1">
<div class="de1"><span class="nu0">255</span> heads, <span class="nu0">63</span> sectors<span class="sy0">/</span>track, <span class="nu0">19457</span> cylinders</div>
</li>
<li class="li1">
<div class="de1">Единицы = цилиндры по <span class="nu0">16065</span> <span class="sy0">*</span> <span class="nu0">512</span> = <span class="nu0">8225280</span> байт</div>
</li>
<li class="li1">
<div class="de1">Устр-во Загр &nbsp; Начало &nbsp; &nbsp;Конец &nbsp; &nbsp; &nbsp;Блоки &nbsp;Id &nbsp;Система</div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">/</span>dev<span class="sy0">/</span>sdd1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="nu0">1</span> &nbsp; &nbsp;<span class="nu0">19457</span> &nbsp;<span class="nu0">156288321</span> &nbsp;fd &nbsp;Автоопределение Linux raid</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>root<span class="sy0">@</span>~<span class="br0">&#93;</span><span class="co0"># mdadm --manage /dev/md1 --add /dev/sdd1</span></div>
</li>
<li class="li1">
<div class="de1">mdadm: re-added <span class="sy0">/</span>dev<span class="sy0">/</span>sdd1</div>
</li>
</ol>
</div>
<p>Далее смотрим в /proc/mdstat и видим, что массив начал синхронизацию:</p>
<pre>
Personalities : [raid1] [raid6] [raid5] [raid4] [raid0]
md1 : active raid1 sdd1[2] sdb1[0]
  1562882 blocks [2/1] [U_]
  [===========&gt;...] recovery = 76% (1194268/1562882) finish=4.3min speed=42M/sec
</pre>
<p>А если один из компонентов массива переходит в статус &laquo;Failed&raquo;, то обычно помогает его ручное удаление из массива, а затем &ndash; добавление заново. Например:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>root<span class="sy0">@</span>~<span class="br0">&#93;</span><span class="co0"># grep md1 /proc/mdstat -A 1</span></div>
</li>
<li class="li1">
<div class="de1">md1 : active raid1 sdb1<span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span> sdd1<span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span><span class="br0">&#40;</span>F<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="nu0">14659200</span> blocks <span class="br0">&#91;</span><span class="nu0">2</span><span class="sy0">/</span><span class="nu0">1</span><span class="br0">&#93;</span> <span class="br0">&#91;</span>_U<span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>root<span class="sy0">@</span>~<span class="br0">&#93;</span><span class="co0"># mdadm --manage /dev/md1 --remove /dev/sdd1</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>root<span class="sy0">@</span>~<span class="br0">&#93;</span><span class="co0"># mdadm --manage /dev/md1 --add /dev/sdd1</span></div>
</li>
</ol>
</div>


<p>Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2009/02/02/linuxquotas/' rel='bookmark' title='Permanent Link: Дисковые квоты в Linux'>Дисковые квоты в Linux</a> <small>Включение дисковых квот в Linux. Взято с http://www.yolinux.com/TUTORIALS/LinuxTutorialQuotas.html Редактируем файл /etc/fstab, добавляя параметры &laquo;usrquota&raquo; и/или &laquo;grpquota&raquo; в строки для нужного...</small></li>
<li><a href='http://avz.org.ua/wp/2009/02/03/initrd-rebuild/' rel='bookmark' title='Permanent Link: Пересборка initrd'>Пересборка initrd</a> <small>Пример как пересобрать initrd для поддержки определенного железа. Взято с http://forums.fedoraforum.org/archive/index.php/t-138530.html. This problem on CentOS: http://www.centos.org/modules/newbb/viewtopic.php?topic_id=10855 I made it for...</small></li>
<li><a href='http://avz.org.ua/wp/2009/06/18/cd-burn-inlinux/' rel='bookmark' title='Permanent Link: Пишем CD/DVD-диски в linux'>Пишем CD/DVD-диски в linux</a> <small>Из консоли диски можно записывать программой cdrecord (она же wodim). Для доступа к приводу используется интерфейс SCSI GENERIC (sg). Работать...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://avz.org.ua/wp/2010/06/22/linux-software-raid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ограничение количества получателей в exim</title>
		<link>http://avz.org.ua/wp/2010/06/13/exim-limit-recepients-number/</link>
		<comments>http://avz.org.ua/wp/2010/06/13/exim-limit-recepients-number/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 08:46:47 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ *nix]]></category>
		<category><![CDATA[Howto]]></category>

		<guid isPermaLink="false">http://avz.org.ua/wp/?p=774</guid>
		<description><![CDATA[Поскольку спамеры заинтересованы в отправке почты максимальному количеству получателей, они часто в одной SMTP-сессии передают множество команд &#171;RCPT TO&#187;. Так как нормальный юзер такое будет делать очень редко (если вообще будет), то очень полезно ограничить количество получателей для одного письма для минимизации распространения спама через почтовый сервер. Для этого в exim предусмотерна опция recipients_max, числовое [...]


Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2010/02/16/samba-access-per-ip-address/' rel='bookmark' title='Permanent Link: Раздаем права в samba по IP-адресу'>Раздаем права в samba по IP-адресу</a> <small>Представим ситуацию: есть samba-пользователь vasya, который ходит на samba-сервер с компьютеров с IP-адресами 172.16.0.7 и 172.16.0.13, и нужно сделать так,...</small></li>
<li><a href='http://avz.org.ua/wp/2009/07/04/bash-history-timestamp/' rel='bookmark' title='Permanent Link: История команд в bash с указанием даты и времени'>История команд в bash с указанием даты и времени</a> <small>Читая в очередной раз man по bash-у, наткнулся на интересную переменную оболочки, цитирую: HISTTIMEFORMAT If this variable is set and...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://avz.org.ua/wp/2010/06/13/exim-limit-recepients-number/spam-protection/" rel="attachment wp-att-779"><img src="http://avz.org.ua/wp/wp-content/uploads/2010/06/spam-protection-200x150.jpg" alt="" title="spam-protection" width="200" height="150" class="alignleft size-thumbnail wp-image-779" /></a>Поскольку спамеры заинтересованы в отправке почты максимальному количеству получателей, они часто в одной SMTP-сессии передают множество команд &laquo;RCPT TO&raquo;. Так как нормальный юзер такое будет делать очень редко (если вообще будет), то очень полезно ограничить количество получателей для одного письма для минимизации распространения спама через почтовый сервер. Для этого в exim предусмотерна опция <strong>recipients_max</strong>, числовое значение которой и устанавливает максимально допустимое число получателей одного письма. Если exim работает чисто как relay и не принимает почту для локальных доменов, то просто установки в exim.conf</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">recipients_max = <span class="nu0">10</span></div>
</li>
</ol>
</div>
<p>должно быть достаточно (число 10 взято для примера). В противном же случае, когда exim помимо relay-инга еще и является primary mx для некоторых доменов, использование <strong>recipients_max</strong> может вызвать проблемы, поскольку количество получателей для входящей почты также будет лимитироваться. Представим ситуацию, когда на сервере пару тысяч пользователей (обычное дело для провайдеров и freemail-сервисов) и 12 из них подписалось на одну и ту же полезную рассылку. При приведённой выше конфигурации почтовый сервер рассылки сможет доставить письмо только 10-ти из этих пользователей, а оставшиеся 2 пойдут пинать админа со словами &laquo;почему у меня не работает почта&raquo;. И вот чтобы всё было по фен-шую, нужно лимитировать количество получателей только для исходящих писем (когда сервер используется как relay). Для этого в блок списков контроля доступа, который соответствует acl_smtp_rcpt, нужно добавить следующее (так, чтобы новые правила были примерно 4-ым и 5-ым сверху если считать для exim.conf, который идет по-умолчанию):</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">defer condition = RELAY_RCPT_LIMIT_ENABLE</div>
</li>
<li class="li1">
<div class="de1">&nbsp; message = Too many recipients</div>
</li>
<li class="li1">
<div class="de1">&nbsp; condition = $<span class="br0">&#123;</span><span class="kw1">if</span> <span class="sy0">&gt;</span>=<span class="br0">&#123;</span><span class="re1">$recipients_count</span><span class="br0">&#125;</span><span class="br0">&#123;</span>RELAY_RCPT_LIMIT_NUM<span class="br0">&#125;</span> <span class="br0">&#123;</span><span class="kw2">yes</span><span class="br0">&#125;</span><span class="br0">&#123;</span>no<span class="br0">&#125;</span><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; hosts = +relay_from_hosts</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="sy0">!</span>authenticated = <span class="sy0">*</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">defer condition = RELAY_RCPT_LIMIT_ENABLE</div>
</li>
<li class="li1">
<div class="de1">&nbsp; message = Too many recipients</div>
</li>
<li class="li1">
<div class="de1">&nbsp; condition = $<span class="br0">&#123;</span><span class="kw1">if</span> <span class="sy0">&gt;</span>=<span class="br0">&#123;</span><span class="re1">$recipients_count</span><span class="br0">&#125;</span><span class="br0">&#123;</span>RELAY_RCPT_LIMIT_NUM<span class="br0">&#125;</span> <span class="br0">&#123;</span><span class="kw2">yes</span><span class="br0">&#125;</span><span class="br0">&#123;</span>no<span class="br0">&#125;</span><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="sy0">!</span>hosts = +relay_from_hosts</div>
</li>
<li class="li1">
<div class="de1">&nbsp; authenticated = <span class="sy0">*</span></div>
</li>
</ol>
</div>
<p>Ну и перед блоком <strong>&laquo;begin acl&raquo;</strong> определить две опции:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="co0"># Флаг, включающий или выключающий ограничения числа получателей</span></div>
</li>
<li class="li1">
<div class="de1">RELAY_RCPT_LIMIT_ENABLE = <span class="kw2">yes</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co0"># Максимально допустимое число получателей в одном письме</span></div>
</li>
<li class="li1">
<div class="de1">RELAY_RCPT_LIMIT_NUM = <span class="nu0">10</span></div>
</li>
</ol>
</div>
<p>Первое условие будет срабатывать для хостов, которым разрешёно использовать почтовый сервер как relay, но которые не прошли аутентификацию. А второе &ndash; для хостов, которые прошли аутентификацию, но которым запрещен relay-инг без неё. А вот хосты, которые не могут использовать сервер как relay и которые НЕ прошли аутентификацию проверять не надо, поскольку они доставляют входящую почту на домены, для которых наш exim является primary MX. Четвёртый вариант (хосты, прошедшие аутентификацию и которым разрешён relay) также ограничивать смысла нет, так как обычно эти два множества не пересекаются.</p>


<p>Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2010/02/16/samba-access-per-ip-address/' rel='bookmark' title='Permanent Link: Раздаем права в samba по IP-адресу'>Раздаем права в samba по IP-адресу</a> <small>Представим ситуацию: есть samba-пользователь vasya, который ходит на samba-сервер с компьютеров с IP-адресами 172.16.0.7 и 172.16.0.13, и нужно сделать так,...</small></li>
<li><a href='http://avz.org.ua/wp/2009/07/04/bash-history-timestamp/' rel='bookmark' title='Permanent Link: История команд в bash с указанием даты и времени'>История команд в bash с указанием даты и времени</a> <small>Читая в очередной раз man по bash-у, наткнулся на интересную переменную оболочки, цитирую: HISTTIMEFORMAT If this variable is set and...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://avz.org.ua/wp/2010/06/13/exim-limit-recepients-number/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FAR и украинские буквы</title>
		<link>http://avz.org.ua/wp/2010/06/13/far-ukrainian-letter-i/</link>
		<comments>http://avz.org.ua/wp/2010/06/13/far-ukrainian-letter-i/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 06:09:00 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://avz.org.ua/wp/?p=747</guid>
		<description><![CDATA[Есть у FAR manager, которым я пользуюсь с незапамятных времён, одна неприятная особенность &#8211; он не корректно отображает украинскую букву &#171;i&#187; в именах файлов. Проблема вызвана отсутствием этого символа и шрифтах по-умолчанию от Microsoft. Но, оказывается, есть простое решение проблемы. Чтобы FAR нормально показывал буквы украинского алфавита, достаточно установить True-Type шрифт Lucida Console в свойствах [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-748" href="http://avz.org.ua/wp/2010/06/13/far-ukrainian-letter-i/far-font/"><img class="alignleft size-thumbnail wp-image-748" title="far-font" src="http://avz.org.ua/wp/wp-content/uploads/2010/06/far-font-123x150.png" alt="Диалоговое окно установки шрифта" width="123" height="150" /></a>Есть у FAR manager, которым я пользуюсь с незапамятных времён, одна неприятная особенность &ndash; он не корректно отображает украинскую букву &laquo;i&raquo; в именах файлов. Проблема вызвана отсутствием этого символа и шрифтах по-умолчанию от Microsoft. Но, оказывается, есть простое решение проблемы. Чтобы FAR нормально показывал буквы украинского алфавита, достаточно установить True-Type шрифт Lucida Console в свойствах окна FAR-а:</p>
<p style="text-align: center;"><strong>До:</strong><br />
<a rel="attachment wp-att-753" href="http://avz.org.ua/wp/2010/06/13/far-ukrainian-letter-i/far-ua-i-bad/"><img class="aligncenter size-full wp-image-753" title="far-ua-i-bad" src="http://avz.org.ua/wp/wp-content/uploads/2010/06/far-ua-i-bad.png" alt="" width="498" height="136" /></a><br />
<strong>После:</strong><br />
<a rel="attachment wp-att-754" href="http://avz.org.ua/wp/2010/06/13/far-ukrainian-letter-i/far-ua-i-good/"><img class="aligncenter size-full wp-image-754" title="far-ua-i-good" src="http://avz.org.ua/wp/wp-content/uploads/2010/06/far-ua-i-good.png" alt="" width="498" height="136" /></a></p>
<p>Проверялось на версии 2.0 build 1279 x86. На форуме поддержки FAR-а говорят также, что данную проблему можно исправить с помощью conemu.</p>
]]></content:encoded>
			<wfw:commentRss>http://avz.org.ua/wp/2010/06/13/far-ukrainian-letter-i/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Детальное логирование в Samba</title>
		<link>http://avz.org.ua/wp/2010/03/05/%d0%b4%d0%b5%d1%82%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d0%bb%d0%be%d0%b3%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2-samba/</link>
		<comments>http://avz.org.ua/wp/2010/03/05/%d0%b4%d0%b5%d1%82%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d0%bb%d0%be%d0%b3%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2-samba/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 19:03:07 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ *nix]]></category>
		<category><![CDATA[Howto]]></category>
		<category><![CDATA[samba]]></category>

		<guid isPermaLink="false">http://avz.org.ua/wp/?p=687</guid>
		<description><![CDATA[Иногда ну очень нужно узнать кто же создал или удалил определенный файл с файлового сервера. Стандартный лог-файл, который Samba пишет при настройках по-умолчанию, не позволяет это сделать, так как в него пишутся только события подключения и отключения от общих ресурсов. Пример стандартного лог-файла: [2010/03/05 20:45:00, 1] smbd/service.c:make_connection_snum(1042) &#160; host44 (10.44.44.44) connect to service PUBLIC initially [...]


Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2010/02/16/samba-access-per-ip-address/' rel='bookmark' title='Permanent Link: Раздаем права в samba по IP-адресу'>Раздаем права в samba по IP-адресу</a> <small>Представим ситуацию: есть samba-пользователь vasya, который ходит на samba-сервер с компьютеров с IP-адресами 172.16.0.7 и 172.16.0.13, и нужно сделать так,...</small></li>
<li><a href='http://avz.org.ua/wp/2009/05/14/samba-cups-error/' rel='bookmark' title='Permanent Link: Ошибка Samba: Unable to connect to CUPS server'>Ошибка Samba: Unable to connect to CUPS server</a> <small>Часто встречается ситуация, когда на файловом сервере под Samba, где никаких принтеров нет и не будет, в лог-файл smbd.log постоянно...</small></li>
<li><a href='http://avz.org.ua/wp/2010/01/27/sed-trick/' rel='bookmark' title='Permanent Link: Штучки с sed-ом'>Штучки с sed-ом</a> <small>sed &ndash; это stream editor. Часто используется в скриптах для различных преобразований текста. Ниже приведено несколько типичных примеров. Удаление из...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://avz.org.ua/wp/wp-content/uploads/2010/03/magnifying-glass-200x150.jpg" alt="" title="magnifying-glass" width="200" height="150" class="pic" />Иногда ну очень нужно узнать кто же создал или удалил определенный файл с файлового сервера. Стандартный лог-файл, который Samba пишет при настройках по-умолчанию, не позволяет это сделать, так как в него пишутся только события подключения и отключения от общих ресурсов. Пример стандартного лог-файла:<br />
<br/></p>
<div class="geshi no text">
<ol>
<li class="li1">
<div class="de1">[2010/03/05 20:45:00, 1] smbd/service.c:make_connection_snum(1042)</div>
</li>
<li class="li1">
<div class="de1">&nbsp; host44 (10.44.44.44) connect to service PUBLIC initially as user vasya (uid=503, gid=501) (pid 27070)</div>
</li>
<li class="li1">
<div class="de1">[2010/03/05 20:47:34, 1] smbd/service.c:close_cnum(1239)</div>
</li>
<li class="li1">
<div class="de1">&nbsp; host44 (10.44.44.44) closed connection to service PUBLIC</div>
</li>
</ol>
</div>
<p>Чтобы лог-файл был более подробным, в <strong>smb.conf</strong> нужно добавить следующие строки:</p>
<div class="geshi text">
<ol>
<li class="li1">
<div class="de1">log level = 0 vfs:2</div>
</li>
<li class="li1">
<div class="de1">max log size = 0</div>
</li>
<li class="li1">
<div class="de1">syslog = 0</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">[PUBLIC]</div>
</li>
<li class="li1">
<div class="de1">&nbsp; comment = writeable folder</div>
</li>
<li class="li1">
<div class="de1">&nbsp; path = /var/spool/samba/public</div>
</li>
<li class="li1">
<div class="de1">&nbsp; valid users = @admins</div>
</li>
<li class="li1">
<div class="de1">&nbsp; public = yes</div>
</li>
<li class="li1">
<div class="de1">&nbsp; writable = yes</div>
</li>
<li class="li1">
<div class="de1">&nbsp; printable = no</div>
</li>
<li class="li1">
<div class="de1">&nbsp; vfs objects = full_audit</div>
</li>
<li class="li1">
<div class="de1">&nbsp; full_audit:prefix = %u|%I</div>
</li>
<li class="li1">
<div class="de1">&nbsp; full_audit:failure = none</div>
</li>
<li class="li1">
<div class="de1">&nbsp; full_audit:success = mkdir rmdir open read pread write pwrite sendfile rename unlink lock</div>
</li>
<li class="li1">
<div class="de1">&nbsp; full_audit:facility = local5</div>
</li>
<li class="li1">
<div class="de1">&nbsp; full_audit:priority = debug</div>
</li>
</ol>
</div>
<p>В параметрах шары все, что касается логирования, перечислено в строках 12-17. В 13-ой строке указываем префикс (логин и IP-адрес клиента). В 15-ой строке перечисляем операции, которые должны подвергаться аудиту (которые будут записываться в лог-файл). В 16-ой и 17-ой строках указываем параметры для syslog. Затем в <strong>/etc/syslog.conf</strong> добавляем строку</p>
<div class="geshi no text">
<ol>
<li class="li1">
<div class="de1">local5.debug &nbsp;-/var/log/samba/audit.log</div>
</li>
</ol>
</div>
<p>и посылаем syslog-у сигнал HUP чтобы тот перечитал свой конфиг. Знак минуса перед именем файла означает, что после каждой записи в файл не будет выполняться операция sync, а данные некоторое время будут находится в оперативной памяти в дисковом буфере. При большой интенсивности потока записей это уменьшает нагрузку на дисковую систему.</p>
<p>В результате в файле /var/log/samba/audit.log появляются примерно такие записи:</p>
<div class="geshi no text">
<ol>
<li class="li1">
<div class="de1">Mar 5 21:04:01 serv smbd_audit: vasya|10.44.44.44|pwrite|ok|dir1/somefile.exe</div>
</li>
<li class="li1">
<div class="de1">Mar 5 21:04:01 serv smbd_audit: ann|10.44.44.92|open|ok|r|dir2/infodept/database.txt</div>
</li>
<li class="li1">
<div class="de1">Mar 5 21:04:01 serv smbd_audit: editor|10.44.44.34|pread|ok|dir1/somefile.exe</div>
</li>
</ol>
</div>


<p>Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2010/02/16/samba-access-per-ip-address/' rel='bookmark' title='Permanent Link: Раздаем права в samba по IP-адресу'>Раздаем права в samba по IP-адресу</a> <small>Представим ситуацию: есть samba-пользователь vasya, который ходит на samba-сервер с компьютеров с IP-адресами 172.16.0.7 и 172.16.0.13, и нужно сделать так,...</small></li>
<li><a href='http://avz.org.ua/wp/2009/05/14/samba-cups-error/' rel='bookmark' title='Permanent Link: Ошибка Samba: Unable to connect to CUPS server'>Ошибка Samba: Unable to connect to CUPS server</a> <small>Часто встречается ситуация, когда на файловом сервере под Samba, где никаких принтеров нет и не будет, в лог-файл smbd.log постоянно...</small></li>
<li><a href='http://avz.org.ua/wp/2010/01/27/sed-trick/' rel='bookmark' title='Permanent Link: Штучки с sed-ом'>Штучки с sed-ом</a> <small>sed &ndash; это stream editor. Часто используется в скриптах для различных преобразований текста. Ниже приведено несколько типичных примеров. Удаление из...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://avz.org.ua/wp/2010/03/05/%d0%b4%d0%b5%d1%82%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d0%bb%d0%be%d0%b3%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2-samba/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Раздаем права в samba по IP-адресу</title>
		<link>http://avz.org.ua/wp/2010/02/16/samba-access-per-ip-address/</link>
		<comments>http://avz.org.ua/wp/2010/02/16/samba-access-per-ip-address/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 21:19:58 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ *nix]]></category>
		<category><![CDATA[Howto]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[samba]]></category>

		<guid isPermaLink="false">http://avz.org.ua/wp/?p=676</guid>
		<description><![CDATA[Представим ситуацию: есть samba-пользователь vasya, который ходит на samba-сервер с компьютеров с IP-адресами 172.16.0.7 и 172.16.0.13, и нужно сделать так, чтобы при подключении с 172.16.0.7 у него был доступ на запись в общий ресурс NashaShara, а при подключении с 172.16.0.13 &#8211; доступ только на чтение. Решается эта задача с помощью макро-подстановок (man 5 smb.conf, раздел [...]


Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2010/03/05/%d0%b4%d0%b5%d1%82%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d0%bb%d0%be%d0%b3%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2-samba/' rel='bookmark' title='Permanent Link: Детальное логирование в Samba'>Детальное логирование в Samba</a> <small>Иногда ну очень нужно узнать кто же создал или удалил определенный файл с файлового сервера. Стандартный лог-файл, который Samba пишет...</small></li>
<li><a href='http://avz.org.ua/wp/2009/05/14/samba-cups-error/' rel='bookmark' title='Permanent Link: Ошибка Samba: Unable to connect to CUPS server'>Ошибка Samba: Unable to connect to CUPS server</a> <small>Часто встречается ситуация, когда на файловом сервере под Samba, где никаких принтеров нет и не будет, в лог-файл smbd.log постоянно...</small></li>
<li><a href='http://avz.org.ua/wp/2010/01/23/wp-autospam-blocking/' rel='bookmark' title='Permanent Link: WordPress: борьба со спамом'>WordPress: борьба со спамом</a> <small>Посвящается тем, кого утомили тонны спама в комментариях, оставляемые с единственной целью &ndash; повесить ссылку на продвигаемый спамером сайт. Есть,...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Представим ситуацию: есть samba-пользователь vasya, который ходит на samba-сервер с компьютеров с IP-адресами 172.16.0.7 и 172.16.0.13, и нужно сделать так, чтобы при подключении с 172.16.0.7 у него был доступ на запись в общий ресурс NashaShara, а при подключении с 172.16.0.13 &ndash; доступ только на чтение. Решается эта задача с помощью макро-подстановок (man 5 smb.conf, раздел &laquo;VARIABLE SUBSTITUTIONS&raquo;) следующим образом:</p>
<ol>
<li>Создаем директорию /etc/samba/per-ip-configs</li>
<li>В директории /etc/samba/per-ip-configs создаем файл с именем 172.16.0.7.conf:
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>NashaShara<span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; comment = Read-Write access</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; path = <span class="sy0">/</span>var<span class="sy0">/</span>spool<span class="sy0">/</span>samba<span class="sy0">/</span>nashashara</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; valid <span class="kw2">users</span> = vasya</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">write</span> list = vasya</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; create mask = <span class="nu0">644</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; directory mask = <span class="nu0">755</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; printable = no</div>
</li>
</ol>
</div>
</li>
<li>Потом в той же директории /etc/samba/per-ip-configs создаем файл уже с именем 172.16.0.13.conf:
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>NashaShara<span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; comment = Read-only access</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; path = <span class="sy0">/</span>var<span class="sy0">/</span>spool<span class="sy0">/</span>samba<span class="sy0">/</span>nashashara</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; valid <span class="kw2">users</span> = vasya</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; create mask = <span class="nu0">644</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; directory mask = <span class="nu0">755</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; printable = no</div>
</li>
</ol>
</div>
</li>
<li>В конфигурационном файле <strong>smb.conf</strong> в самом начале раздела, где описываются общие ресурсы, добавляем строку:
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">include = <span class="sy0">/</span>etc<span class="sy0">/</span>samba<span class="sy0">/</span>per-ip-configs<span class="sy0">/%</span>I.conf</div>
</li>
</ol>
</div>
</li>
</ol>
<p>Таким образом, теперь при подключении нового клиента samba будет подгружать ту часть конфига, которая соответствует IP-адресу клиента (он подставляется вместо <strong>%I</strong>). Если клиент подключится с другого IP-адреса (для которого нет соответствующего файла в /etc/samba/per-ip-configs) и в основном конфиге <strong>smb.conf</strong> не будет определения для общего ресурса NashaShara, то клиент просто этот ресурс не увидит и доступа к нему не получит.</p>


<p>Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2010/03/05/%d0%b4%d0%b5%d1%82%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d0%bb%d0%be%d0%b3%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2-samba/' rel='bookmark' title='Permanent Link: Детальное логирование в Samba'>Детальное логирование в Samba</a> <small>Иногда ну очень нужно узнать кто же создал или удалил определенный файл с файлового сервера. Стандартный лог-файл, который Samba пишет...</small></li>
<li><a href='http://avz.org.ua/wp/2009/05/14/samba-cups-error/' rel='bookmark' title='Permanent Link: Ошибка Samba: Unable to connect to CUPS server'>Ошибка Samba: Unable to connect to CUPS server</a> <small>Часто встречается ситуация, когда на файловом сервере под Samba, где никаких принтеров нет и не будет, в лог-файл smbd.log постоянно...</small></li>
<li><a href='http://avz.org.ua/wp/2010/01/23/wp-autospam-blocking/' rel='bookmark' title='Permanent Link: WordPress: борьба со спамом'>WordPress: борьба со спамом</a> <small>Посвящается тем, кого утомили тонны спама в комментариях, оставляемые с единственной целью &ndash; повесить ссылку на продвигаемый спамером сайт. Есть,...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://avz.org.ua/wp/2010/02/16/samba-access-per-ip-address/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Штучки с sed-ом</title>
		<link>http://avz.org.ua/wp/2010/01/27/sed-trick/</link>
		<comments>http://avz.org.ua/wp/2010/01/27/sed-trick/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 20:06:09 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ *nix]]></category>
		<category><![CDATA[Howto]]></category>
		<category><![CDATA[sed]]></category>

		<guid isPermaLink="false">http://avz.org.ua/wp/?p=653</guid>
		<description><![CDATA[sed &#8211; это stream editor. Часто используется в скриптах для различных преобразований текста. Ниже приведено несколько типичных примеров. Удаление из файла заданных строк. Пусть, например, нужно удалить строки из файла, в которых содержиться подстрока &#171;phone: xxx-xx-xx&#187; (вместо символа x &#8211; цифры): sed &#34;/phone: [0-9]\{3\}-[0-9]\{2\}-[0-9]\{2\}/ d&#34; somefile.txt Здесь между слешами (/) задается шаблон (регулярное выражение), после [...]


Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2010/03/05/%d0%b4%d0%b5%d1%82%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d0%bb%d0%be%d0%b3%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2-samba/' rel='bookmark' title='Permanent Link: Детальное логирование в Samba'>Детальное логирование в Samba</a> <small>Иногда ну очень нужно узнать кто же создал или удалил определенный файл с файлового сервера. Стандартный лог-файл, который Samba пишет...</small></li>
<li><a href='http://avz.org.ua/wp/2009/06/04/freebsd-nat/' rel='bookmark' title='Permanent Link: Строим NAT средствами FreeBSD'>Строим NAT средствами FreeBSD</a> <small>Для наглядности считаем, что внутренняя сеть адресуется блоком 192.168.0.0/24, шлюзом для внутренней сети выступает 192.168.0.1, IP-адрес внешнего интерфейса роутера &ndash;...</small></li>
<li><a href='http://avz.org.ua/wp/2009/05/14/samba-cups-error/' rel='bookmark' title='Permanent Link: Ошибка Samba: Unable to connect to CUPS server'>Ошибка Samba: Unable to connect to CUPS server</a> <small>Часто встречается ситуация, когда на файловом сервере под Samba, где никаких принтеров нет и не будет, в лог-файл smbd.log постоянно...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><strong>sed</strong> &ndash; это <strong>s</strong>tream <strong>ed</strong>itor. Часто используется в скриптах для различных преобразований текста. Ниже приведено несколько типичных примеров.</p>
<ol>
<li>Удаление из файла заданных строк.<br />
Пусть, например, нужно удалить строки из файла, в которых содержиться подстрока &laquo;phone: xxx-xx-xx&raquo; (вместо символа x &#8211; цифры):</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">sed</span> <span class="st0">&quot;/phone: [0-9]<span class="es0">\{</span>3<span class="es0">\}</span>-[0-9]<span class="es0">\{</span>2<span class="es0">\}</span>-[0-9]<span class="es0">\{</span>2<span class="es0">\}</span>/ d&quot;</span> somefile.txt</div>
</li>
</ol>
</div>
<p>Здесь между слешами (/) задается шаблон (регулярное выражение), после него стоит оператор <strong>&laquo;d&raquo;</strong> (от слова delete), который удаляет строки, совпадающие с шаблоном. Результат:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$cat</span> <span class="kw3">test</span>.txt</div>
</li>
<li class="li1">
<div class="de1">phone: <span class="nu0">111</span><span class="nu0">-22</span><span class="nu0">-44</span></div>
</li>
<li class="li1">
<div class="de1">phone: <span class="nu0">111</span><span class="nu0">-22</span><span class="nu0">-44</span></div>
</li>
<li class="li1">
<div class="de1">phone: <span class="nu0">311</span><span class="nu0">-22</span>-d4</div>
</li>
<li class="li1">
<div class="de1">phone: &nbsp;<span class="nu0">111</span><span class="nu0">-22</span><span class="nu0">-55</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$sed</span> <span class="st0">&quot;/phone: [0-9]<span class="es0">\{</span>3<span class="es0">\}</span>-[0-9]<span class="es0">\{</span>2<span class="es0">\}</span>-[0-9]<span class="es0">\{</span>2<span class="es0">\}</span>/ d&quot;</span> <span class="kw3">test</span>.txt</div>
</li>
<li class="li1">
<div class="de1">phone: <span class="nu0">311</span><span class="nu0">-22</span>-d4</div>
</li>
<li class="li1">
<div class="de1">phone: &nbsp;<span class="nu0">111</span><span class="nu0">-22</span><span class="nu0">-55</span></div>
</li>
</ol>
</div>
<p>Если нужно, чтобы изменения происходили сразу в файле, без вывода в stdout, нужно добавить ключ <strong>--in-place (-i)</strong>.</p>
<li>Добавление в файл строки в определённом месте.<br />
Вставляем мета-тег с указанием кодировки документа перед закрывающим тегом &lt;/head&gt; во все файлы с расширением .html в текущей директории:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">sed</span> -i <span class="st0">&#39;/&lt;<span class="es0">\/</span>head&gt;/ i &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text<span class="es0">\/</span>html; charset=utf-8&quot;&gt;&#39;</span> <span class="sy0">*</span>.html</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sed</span> -i -r <span class="st0">&quot;s/<span class="es0">\r</span>//g&quot;</span> <span class="sy0">*</span>.html</div>
</li>
</ol>
</div>
<p>Второй sed нужен чтобы поудалять символ возврата каретки с ASCII-кодом 13 в конце строк, который почему-то появляется в результате работы первого sed-а.
</li>
</li>
<li>Удаление из файла первых нескольких строк до тех пор, пока не встретиться пустая строка. Такое часто бывает нужно при обработке писем &ndash; если нужно отделить заголовок письма от его тела:
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$cat</span> <span class="kw3">test</span>.txt</div>
</li>
<li class="li1">
<div class="de1">Some text <span class="kw1">in</span> mail header.</div>
</li>
<li class="li1">
<div class="de1">Another text line <span class="kw1">in</span> mail header.</div>
</li>
<li class="li1">
<div class="de1">And so on&#8230;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">Here starts mail body.</div>
</li>
<li class="li1">
<div class="de1">Some text <span class="kw1">in</span> mail body.</div>
</li>
<li class="li1">
<div class="de1">Use <span class="kw2">sed</span> to <span class="kw2">make</span> things <span class="kw2">nice</span> :<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$sed</span> <span class="st0">&#39;1,/^$/ d&#39;</span> <span class="kw3">test</span>.txt</div>
</li>
<li class="li1">
<div class="de1">Here starts mail body.</div>
</li>
<li class="li1">
<div class="de1">Some text <span class="kw1">in</span> mail body.</div>
</li>
<li class="li1">
<div class="de1">Use <span class="kw2">sed</span> to <span class="kw2">make</span> things <span class="kw2">nice</span> :<span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p>Здесь видно, что первые три строки были удалены. Шаблон <strong>/^$/</strong> означает пустую строку (символ <strong>^</strong> совпадает с началом строки, а символ <strong>$</strong> &ndash; с концом строки. Так как между ними ничего нет, то строка пустая). Выражение <strong>1,/^$/</strong> означает диапазон строк с 1-ой до пустой включительно. Оператор <strong>&laquo;d&raquo;</strong> &ndash; удаление.
</li>
<li>Замена текста. Для этого испольузется оператор <strong>s///</strong>:
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$cat</span> <span class="kw3">test</span>.txt</div>
</li>
<li class="li1">
<div class="de1">I want to have <span class="kw2">nice</span> house with <span class="nu0">4</span> rooms.</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$sed</span> <span class="st0">&quot;s/<span class="es0">\(</span>nice<span class="es0">\)</span>/very <span class="es0">\1</span>/&quot;</span> <span class="kw3">test</span>.txt <span class="sy0">|</span> <span class="kw2">sed</span> <span class="st0">&quot;s/[0-9]/12/&quot;</span></div>
</li>
<li class="li1">
<div class="de1">I want to have very <span class="kw2">nice</span> house with <span class="nu0">12</span> rooms.</div>
</li>
</ol>
</div>
<p>В операторе замены <strong>s///</strong> между 1-ым и 2-ым слешем указывается шаблон, который нужно найти для замены, а между 2-ым и 3-им слешем &ndash; текст, НА который нужно заменить шаблон. Если в шаблоне используются круглые скобки (их нужно экранировать обратнымы слешами), то текст между скобками будет доступен для использвания во второй части оператора (это называется backreference). Для вставки текста, заключенного в 1-ую пару скобок, применяется конструкция <strong>\1</strong>, для текста между второй парой скобок &ndash; <strong>\2</strong> и т.д.
</li>
</ol>


<p>Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2010/03/05/%d0%b4%d0%b5%d1%82%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d0%bb%d0%be%d0%b3%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2-samba/' rel='bookmark' title='Permanent Link: Детальное логирование в Samba'>Детальное логирование в Samba</a> <small>Иногда ну очень нужно узнать кто же создал или удалил определенный файл с файлового сервера. Стандартный лог-файл, который Samba пишет...</small></li>
<li><a href='http://avz.org.ua/wp/2009/06/04/freebsd-nat/' rel='bookmark' title='Permanent Link: Строим NAT средствами FreeBSD'>Строим NAT средствами FreeBSD</a> <small>Для наглядности считаем, что внутренняя сеть адресуется блоком 192.168.0.0/24, шлюзом для внутренней сети выступает 192.168.0.1, IP-адрес внешнего интерфейса роутера &ndash;...</small></li>
<li><a href='http://avz.org.ua/wp/2009/05/14/samba-cups-error/' rel='bookmark' title='Permanent Link: Ошибка Samba: Unable to connect to CUPS server'>Ошибка Samba: Unable to connect to CUPS server</a> <small>Часто встречается ситуация, когда на файловом сервере под Samba, где никаких принтеров нет и не будет, в лог-файл smbd.log постоянно...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://avz.org.ua/wp/2010/01/27/sed-trick/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress: борьба со спамом</title>
		<link>http://avz.org.ua/wp/2010/01/23/wp-autospam-blocking/</link>
		<comments>http://avz.org.ua/wp/2010/01/23/wp-autospam-blocking/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 18:08:46 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ Веб-приложения]]></category>
		<category><![CDATA[Howto]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://avz.org.ua/wp/?p=629</guid>
		<description><![CDATA[Посвящается тем, кого утомили тонны спама в комментариях, оставляемые с единственной целью &#8211; повесить ссылку на продвигаемый спамером сайт. Есть, конечно, для этого дела много разных плагинов, типа Akismet, Bad Behavior, Parasite Eliminator. Но мне больше нравится следующий простой и эффективный метод, не требующий установки никаких плагинов. Нужно просто переименовать поля формы для ввода комментария. [...]


Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2009/07/22/wordpress-tuning/' rel='bookmark' title='Permanent Link: Тонкая настройка wordpress'>Тонкая настройка wordpress</a> <small>В этой статье освещены следующие темы: Тайм-аут при загрузке файлов с удаленных хостов Отложенная публикация Удаление черновиков Статический блок в...</small></li>
<li><a href='http://avz.org.ua/wp/2009/08/24/cutenews-with-captcha/' rel='bookmark' title='Permanent Link: Внедряем Captcha в CuteNews'>Внедряем Captcha в CuteNews</a> <small>Защита от спама сейчас &#8211; просто необходимый элемент любого сайта, где присутствует возможность заполнения каки-либо форм (будь то форма для...</small></li>
<li><a href='http://avz.org.ua/wp/2009/05/14/samba-cups-error/' rel='bookmark' title='Permanent Link: Ошибка Samba: Unable to connect to CUPS server'>Ошибка Samba: Unable to connect to CUPS server</a> <small>Часто встречается ситуация, когда на файловом сервере под Samba, где никаких принтеров нет и не будет, в лог-файл smbd.log постоянно...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Посвящается тем, кого утомили тонны спама в комментариях, оставляемые с единственной целью &ndash; повесить ссылку на продвигаемый спамером сайт. Есть, конечно, для этого дела много разных плагинов, типа Akismet, Bad Behavior, Parasite Eliminator. Но мне больше нравится следующий простой и эффективный метод, не требующий установки никаких плагинов. Нужно просто переименовать поля формы для ввода комментария. И всё! Спамерское программное обеспечение, которое рассылает спам по блогам в автоматическом режиме, как раз и ориентируется на наличие полей в форме с определенными именами. Куда и пытается совать всякую фигню типа &laquo;Отличный блог, добавил в закладки :)&raquo; ни в коем случае на забывая оставить ссылочку. В случае с WordPress это поля <strong>comment</strong>, <strong>email</strong>, <strong>url</strong> и <strong>author</strong>. Поэтому в директории, соответствующей установленной теме, нужно отредактировать файл comment.php следующим образом.</p>
<ol>
<li>Для начала 41-ую строку
<div class="geshi php">
<div class="head">/wp-content/themes/<ваша тема>/forms/comment.php</div>
<ol start="41">
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>textarea name<span class="sy0">=</span><span class="st0">&quot;comment&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;comment&quot;</span> rows<span class="sy0">=</span><span class="st0">&quot;8&quot;</span> cols<span class="sy0">=</span><span class="st0">&quot;40&quot;</span> tabindex<span class="sy0">=</span><span class="st0">&quot;1&quot;</span><span class="sy0">&gt;&lt;/</span>textarea<span class="sy0">&gt;</span></div>
</li>
</ol>
</div>
<p>меняем на:</p>
<div class="geshi php">
<div class="head">/wp-content/themes/<ваша тема>/forms/comment.php</div>
<ol start="41">
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>textarea name<span class="sy0">=</span><span class="st0">&quot;komment&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;komment&quot;</span> rows<span class="sy0">=</span><span class="st0">&quot;8&quot;</span> cols<span class="sy0">=</span><span class="st0">&quot;40&quot;</span> tabindex<span class="sy0">=</span><span class="st0">&quot;1&quot;</span><span class="sy0">&gt;&lt;/</span>textarea<span class="sy0">&gt;</span></div>
</li>
</ol>
</div>
</li>
<li>Далее 55-ую строку
<div class="geshi php">
<div class="head">/wp-content/themes/<ваша тема>/forms/comment.php</div>
<ol start="55">
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>input type<span class="sy0">=</span><span class="st0">&quot;text&quot;</span> name<span class="sy0">=</span><span class="st0">&quot;author&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;author&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;&lt;?php echo $comment_author; ?&gt;&quot;</span> size<span class="sy0">=</span><span class="st0">&quot;22&quot;</span> tabindex<span class="sy0">=</span><span class="st0">&quot;2&quot;</span> <span class="sy0">/&gt;</span></div>
</li>
</ol>
</div>
<p>меняем на:</p>
<div class="geshi php">
<div class="head">/wp-content/themes/<ваша тема>/forms/comment.php</div>
<ol start="55">
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>input type<span class="sy0">=</span><span class="st0">&quot;text&quot;</span> name<span class="sy0">=</span><span class="st0">&quot;aftar&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;aftar&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;&lt;?php echo $comment_author; ?&gt;&quot;</span> size<span class="sy0">=</span><span class="st0">&quot;22&quot;</span> tabindex<span class="sy0">=</span><span class="st0">&quot;2&quot;</span> <span class="sy0">/&gt;</span></div>
</li>
</ol>
</div>
</li>
<li>60-ую строку
<div class="geshi php">
<div class="head">/wp-content/themes/<ваша тема>/forms/comment.php</div>
<ol start="60">
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>input type<span class="sy0">=</span><span class="st0">&quot;text&quot;</span> name<span class="sy0">=</span><span class="st0">&quot;email&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;email&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;&lt;?php echo $comment_author_email; ?&gt;&quot;</span> size<span class="sy0">=</span><span class="st0">&quot;22&quot;</span> tabindex<span class="sy0">=</span><span class="st0">&quot;3&quot;</span> <span class="sy0">/&gt;</span></div>
</li>
</ol>
</div>
<p>меняем на:</p>
<div class="geshi php">
<div class="head">/wp-content/themes/<ваша тема>/forms/comment.php</div>
<ol start="60">
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>input type<span class="sy0">=</span><span class="st0">&quot;text&quot;</span> name<span class="sy0">=</span><span class="st0">&quot;pochta&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;pochta&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;&lt;?php echo $comment_author_email; ?&gt;&quot;</span> size<span class="sy0">=</span><span class="st0">&quot;22&quot;</span> tabindex<span class="sy0">=</span><span class="st0">&quot;3&quot;</span> <span class="sy0">/&gt;</span></div>
</li>
</ol>
</div>
</li>
<li>72-ую строку
<div class="geshi php">
<div class="head">/wp-content/themes/<ваша тема>/forms/comment.php</div>
<ol start="72">
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>input type<span class="sy0">=</span><span class="st0">&quot;text&quot;</span> name<span class="sy0">=</span><span class="st0">&quot;url&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;url&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;&lt;?php echo $comment_author_url; ?&gt;&quot;</span> size<span class="sy0">=</span><span class="st0">&quot;22&quot;</span> tabindex<span class="sy0">=</span><span class="st0">&quot;4&quot;</span> <span class="sy0">/&gt;</span></div>
</li>
</ol>
</div>
<p>меняем на:</p>
<div class="geshi php">
<div class="head">/wp-content/themes/<ваша тема>/forms/comment.php</div>
<ol start="72">
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>input type<span class="sy0">=</span><span class="st0">&quot;text&quot;</span> name<span class="sy0">=</span><span class="st0">&quot;sait&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;sait&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;&lt;?php echo $comment_author_url; ?&gt;&quot;</span> size<span class="sy0">=</span><span class="st0">&quot;22&quot;</span> tabindex<span class="sy0">=</span><span class="st0">&quot;4&quot;</span> <span class="sy0">/&gt;</span></div>
</li>
</ol>
</div>
</li>
<li>Затем в файле /wp-comments-post.php меняем код, где упоминаются эти поля формы:
<div class="geshi php">
<div class="head">/wp-comments-post.php</div>
<ol start="40">
<li class="li1">
<div class="de1"><span class="re1">$comment_author</span> <span class="sy0">=</span> <span class="br0">&#40;</span> <span class="kw3">isset</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;author&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span> ? <span class="kw3">trim</span><span class="br0">&#40;</span><span class="kw3">strip_tags</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;author&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$comment_author_email</span> <span class="sy0">=</span> <span class="br0">&#40;</span> <span class="kw3">isset</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;email&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span> ? <span class="kw3">trim</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;email&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$comment_author_url</span> <span class="sy0">=</span> <span class="br0">&#40;</span> <span class="kw3">isset</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;url&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span> ? <span class="kw3">trim</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;url&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$comment_content</span> <span class="sy0">=</span> <span class="br0">&#40;</span> <span class="kw3">isset</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;comment&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span> ? <span class="kw3">trim</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;comment&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
<p>Заменяя оригинальные имена на полей на те, что придумали ранее:</p>
<div class="geshi php">
<div class="head">/wp-comments-post.php</div>
<ol start="40">
<li class="li1">
<div class="de1"><span class="re1">$comment_author</span> <span class="sy0">=</span> <span class="br0">&#40;</span> <span class="kw3">isset</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;aftar&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span> ? <span class="kw3">trim</span><span class="br0">&#40;</span><span class="kw3">strip_tags</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;aftar&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$comment_author_email</span> <span class="sy0">=</span> <span class="br0">&#40;</span> <span class="kw3">isset</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;pochta&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span> ? <span class="kw3">trim</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;pochta&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$comment_author_url</span> <span class="sy0">=</span> <span class="br0">&#40;</span> <span class="kw3">isset</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;sait&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span> ? <span class="kw3">trim</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;sait&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$comment_content</span> <span class="sy0">=</span> <span class="br0">&#40;</span> <span class="kw3">isset</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;komment&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span> ? <span class="kw3">trim</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;komment&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
</li>
<p>Лично у меня после этих модификаций спам полностью прекратился. А до этого было по 15-20 штук спамерских сообщений в сутки. Хоть на сайте они и не появлялись, так как Akismet их прилежно отлавливал, но все равно нужно было вручную удалять из админки весь этот хлам, чтобы не замусоривать базу данных. Новые имена полей могут быть любыми, лишь бы они отличались от исходных.</p>
<p>Недостаток такого метода в том, что после обновления WordPress изменения, скорей всего, потеряются и нужно будет либо проделать правки заново, либо пред обновлением сохранить файлы comment.php и wp-comments-post.php, а после обновления &ndash; заменить новые на старые. Кроме того, спам через trackback-и все равно пролезет. Поэтому нужно либо их запретить (например, правилами модуля Apache ModRewrite), либо поставить какой-то плагин вроде Simple Trackback Validation.</p>
<p>Все это проверялось на версиях WordPress 2.9.0 и 2.9.1. Для других версий могут быть отличия в коде и в номерах строк.</p>


<p>Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2009/07/22/wordpress-tuning/' rel='bookmark' title='Permanent Link: Тонкая настройка wordpress'>Тонкая настройка wordpress</a> <small>В этой статье освещены следующие темы: Тайм-аут при загрузке файлов с удаленных хостов Отложенная публикация Удаление черновиков Статический блок в...</small></li>
<li><a href='http://avz.org.ua/wp/2009/08/24/cutenews-with-captcha/' rel='bookmark' title='Permanent Link: Внедряем Captcha в CuteNews'>Внедряем Captcha в CuteNews</a> <small>Защита от спама сейчас &#8211; просто необходимый элемент любого сайта, где присутствует возможность заполнения каки-либо форм (будь то форма для...</small></li>
<li><a href='http://avz.org.ua/wp/2009/05/14/samba-cups-error/' rel='bookmark' title='Permanent Link: Ошибка Samba: Unable to connect to CUPS server'>Ошибка Samba: Unable to connect to CUPS server</a> <small>Часто встречается ситуация, когда на файловом сервере под Samba, где никаких принтеров нет и не будет, в лог-файл smbd.log постоянно...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://avz.org.ua/wp/2010/01/23/wp-autospam-blocking/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Появилась новая прошивка WRT160NL v0.1.2 для роутеров Linksys</title>
		<link>http://avz.org.ua/wp/2009/12/24/new-firmware-wrt160nl-v0-1-2/</link>
		<comments>http://avz.org.ua/wp/2009/12/24/new-firmware-wrt160nl-v0-1-2/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 10:02:23 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ *nix]]></category>

		<guid isPermaLink="false">http://avz.org.ua/wp/?p=617</guid>
		<description><![CDATA[Информационный ресурс по поддержке продукции Linksys  Мир Wi-Fi сообщает о выпуске новой прошивки для  Linksys WRT160NL &#8212; нового маршрутизатора, ориентированного на Linux-сообщество. Теперь WRT160NL может поддерживать высокую скорость PPTP, 3G и Wimax модемы, Torrent и многое другое. Прошивка ориентирована на высокоскоростную работу с VPN PPTP сетями типа Corbina. К примеру, скорость PPTP соединения доходит до [...]]]></description>
			<content:encoded><![CDATA[<p>Информационный ресурс по поддержке продукции Linksys  <a href="http://mirwifi.org" target="_blank">Мир Wi-Fi</a> сообщает о выпуске новой прошивки для  Linksys WRT160NL &#8212; нового маршрутизатора, ориентированного на Linux-сообщество. Теперь WRT160NL может поддерживать высокую скорость PPTP, 3G и Wimax модемы, Torrent и многое другое. Прошивка ориентирована на высокоскоростную работу с VPN PPTP сетями типа Corbina. К примеру, скорость PPTP соединения доходит до 80 Mbps. В отличие от базовой прошивки, имя PPTP сервера можно задавать не только IP адресом, но и доменным именем, как то vpn.someserver.ru. В новой прошивке USB порт можно использовать для подключения 3G и WiMax модемов. Было провдено успешное  тестирование устройства с сетью PeopleNet (Украина), а также Yota (Россия).  Результаты  тестирования показали, что новая прошивка  отлично подходит для  работы  устройства  в режиме 3G и WiMax. Также преимуществами являются возможность поддержки Torrent клиента и базового принт-сервера. Переход с Linksys прошивки на прошивку Mirwifi.org довольно прост &#8212; достаточно обновить прошивку через Web-интерфейс с помощью стандартной процедуры. Перейти назад на Linksys прошивку можно также через Web-интерфейс.</p>
]]></content:encoded>
			<wfw:commentRss>http://avz.org.ua/wp/2009/12/24/new-firmware-wrt160nl-v0-1-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Установка Skype в 64-битную Linux-систему</title>
		<link>http://avz.org.ua/wp/2009/11/23/skype-linux-64bi/</link>
		<comments>http://avz.org.ua/wp/2009/11/23/skype-linux-64bi/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 13:19:04 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ *nix]]></category>
		<category><![CDATA[ldconfig]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[skype]]></category>

		<guid isPermaLink="false">http://avz.org.ua/wp/?p=506</guid>
		<description><![CDATA[К сожалению, Skype пока не выпустил 64-битной версии своего продукта под Linux. Но, погуглив немного, находятся отзывы, что в 64-битной системе можно запустить 32-битную версию. Вот я и решил попробовать на своей Fedora core 11 2.6.30.9-96.fc11.x86_64. Последовательность следующая. Качаем 32-битную rpm-ку с офф. сайта. Устанавливаем: rpm -ivh skype-2.1.0.47-fc10.i586.rpm Пытаемся запустить бинарник /usr/bin/skype &#8211; он вылетит [...]


Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2009/06/19/canon-pixma-ip1000-in-linux/' rel='bookmark' title='Permanent Link: Установка принтера Canon Pixma iP1000 в Linux'>Установка принтера Canon Pixma iP1000 в Linux</a> <small>1. Ставим rpm-файлы: bjfilter-common-2.50-2.i386.rpm, bjfilter-pixmaip1000-2.50-2.i386.rpm, bjfilter-pixmaip1000-lprng-2.50-2.i386.rpm 2. Перезапускаем cups: /etc/rc.d/init.d/cups restart 3. Выполняем команду для окончательной регистрации принтера: lpadmin -p...</small></li>
<li><a href='http://avz.org.ua/wp/2009/05/22/linux-installcheckpoints/' rel='bookmark' title='Permanent Link: Порядок настройки свежеустановленной Linux'>Порядок настройки свежеустановленной Linux</a> <small>Здесь описан порядок начальной настройки свежеустановленной операционной системы (на примере RedHat-подобных дистрибутивов, таких как Fedora, CentOS и т.п). Проверить, что...</small></li>
<li><a href='http://avz.org.ua/wp/2009/01/09/linux-nat/' rel='bookmark' title='Permanent Link: NAT в linux'>NAT в linux</a> <small>Исходные данные: есть роутер с двумя физическими интерфейсами &#8211; eth0 (внешний) и eth1 (внутренний). На внутреннем интерфейсе прибит ip-адрес 192.168.0.1/24....</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>К сожалению, Skype пока не выпустил 64-битной версии своего продукта под Linux. Но, <a href="http://forum.skype.com/index.php?s=3f13bc37287be4e3eca14699978a490b&#038;showtopic=71908&#038;st=20" rel="nofollow">погуглив</a> немного, находятся отзывы, что в 64-битной системе можно запустить 32-битную версию. Вот я и решил попробовать на своей Fedora core 11 2.6.30.9-96.fc11.x86_64. Последовательность следующая.</p>
<ol>
<li><a href="http://www.skype.com/go/getskype-linux-beta-fc10">Качаем</a> 32-битную rpm-ку с офф. сайта.</li>
<li>Устанавливаем:
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">rpm -ivh skype<span class="nu0">-2.1</span><span class="nu0">.0</span><span class="nu0">.47</span>-fc10.i586.rpm</div>
</li>
</ol>
</div>
</li>
<li>Пытаемся запустить бинарник /usr/bin/skype &ndash; он вылетит с жалобой на отсутствующую библиотеку:
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$skype</span></div>
</li>
<li class="li1">
<div class="de1">skype: error <span class="kw1">while</span> loading shared libraries: libssl.so<span class="nu0">.8</span>: </div>
</li>
<li class="li1">
<div class="de1">cannot open shared object <span class="kw2">file</span>: No such <span class="kw2">file</span> or directory</div>
</li>
</ol>
</div>
</li>
<li>Смотрим c помощью ldd какие ему нужны библиотеки:
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$ldd</span> <span class="sy0">/</span>usr<span class="sy0">/</span>bin<span class="sy0">/</span>skype</div>
</li>
<li class="li1">
<div class="de1">linux-gate.so<span class="nu0">.1</span> =<span class="sy0">&gt;</span> &nbsp;<span class="br0">&#40;</span>0xf77a1000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">librt.so<span class="nu0">.1</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>lib<span class="sy0">/</span>librt.so<span class="nu0">.1</span> <span class="br0">&#40;</span>0xf7691000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libpthread.so<span class="nu0">.0</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>lib<span class="sy0">/</span>libpthread.so<span class="nu0">.0</span> <span class="br0">&#40;</span>0xf6948000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libstdc++.so<span class="nu0">.6</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>usr<span class="sy0">/</span>lib<span class="sy0">/</span>libstdc++.so<span class="nu0">.6</span> <span class="br0">&#40;</span>0x00bf2000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libm.so<span class="nu0">.6</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>lib<span class="sy0">/</span>libm.so<span class="nu0">.6</span> <span class="br0">&#40;</span>0x00b9b000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libgcc_s.so<span class="nu0">.1</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>lib<span class="sy0">/</span>libgcc_s.so<span class="nu0">.1</span> <span class="br0">&#40;</span>0x00bc5000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libc.so<span class="nu0">.6</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>lib<span class="sy0">/</span>libc.so<span class="nu0">.6</span> <span class="br0">&#40;</span>0x00a28000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libdl.so<span class="nu0">.2</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>lib<span class="sy0">/</span>libdl.so<span class="nu0">.2</span> <span class="br0">&#40;</span>0xf6942000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">/</span>lib<span class="sy0">/</span>ld-linux.so<span class="nu0">.2</span> <span class="br0">&#40;</span>0x00a04000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libSM.so<span class="nu0">.6</span> =<span class="sy0">&gt;</span> not found</div>
</li>
<li class="li1">
<div class="de1">libXi.so<span class="nu0">.6</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>usr<span class="sy0">/</span>lib<span class="sy0">/</span>libXi.so<span class="nu0">.6</span> <span class="br0">&#40;</span>0xf655e000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libXrender.so<span class="nu0">.1</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>usr<span class="sy0">/</span>lib<span class="sy0">/</span>libXrender.so<span class="nu0">.1</span> <span class="br0">&#40;</span>0xf6555000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libXrandr.so<span class="nu0">.2</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>usr<span class="sy0">/</span>lib<span class="sy0">/</span>libXrandr.so<span class="nu0">.2</span> <span class="br0">&#40;</span>0xf654d000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libXfixes.so<span class="nu0">.3</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>usr<span class="sy0">/</span>lib<span class="sy0">/</span>libXfixes.so<span class="nu0">.3</span> <span class="br0">&#40;</span>0xf6548000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libXcursor.so<span class="nu0">.1</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>usr<span class="sy0">/</span>lib<span class="sy0">/</span>libXcursor.so<span class="nu0">.1</span> <span class="br0">&#40;</span>0xf653e000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libXinerama.so<span class="nu0">.1</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>usr<span class="sy0">/</span>lib<span class="sy0">/</span>libXinerama.so<span class="nu0">.1</span> <span class="br0">&#40;</span>0xf653b000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libfontconfig.so<span class="nu0">.1</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>usr<span class="sy0">/</span>lib<span class="sy0">/</span>libfontconfig.so<span class="nu0">.1</span> <span class="br0">&#40;</span>0xf6507000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libssl.so<span class="nu0">.8</span> =<span class="sy0">&gt;</span> not found</div>
</li>
</ol>
</div>
<p>Те библиотеки, которые нужно доустановить, будут помечены как &laquo;not found&raquo;</li>
<li>Устанавливаем недостающие библиотеки. В моем случае потребовалось установить (командой yum install) следующие пакеты: libICE.i586 libXau.i586 libxcb.i586 libX11.i586 libXext.i586 libXi.i586 libXrender.i586 libXrandr.i586 libXfixes.i586 libXcursor.i586 libXinerama.i586 expat.i586 freetype-freeworld.i586 fontconfig.i586 e2fsprogs-libs.i586 keyutils-libs.i586 zlib-1.2.3-22.i586 libselinux.i586 krb5-libs.i586 openssl.i586 libattr.i586 libcap.i586</li>
<li>После чего пробуем запускать skype, у меня успешно запустился.</li>
</ol>
<p>Есть альтернативный путь для тех, что не хочет захламять систему библиотеками неродной архитектуры.
<ol>
<li>Определяем имя rpm-пакета, в котором должна быть отсутствующая библиотека:
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$skype</span></div>
</li>
<li class="li1">
<div class="de1">skype: error <span class="kw1">while</span> loading shared libraries: libSM.so<span class="nu0">.6</span>: </div>
</li>
<li class="li1">
<div class="de1">cannot open shared object <span class="kw2">file</span>: No such <span class="kw2">file</span> or directory</div>
</li>
<li class="li1">
<div class="de1"><span class="co0">#locate libSM.so.6</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">/</span>usr<span class="sy0">/</span>lib64<span class="sy0">/</span>libSM.so<span class="nu0">.6</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">/</span>usr<span class="sy0">/</span>lib64<span class="sy0">/</span>libSM.so<span class="nu0">.6</span><span class="nu0">.0</span><span class="nu0">.0</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co0">#rpm -qf /usr/lib64/libSM.so.6</span></div>
</li>
<li class="li1">
<div class="de1">libSM<span class="nu0">-1.1</span><span class="nu0">.0</span><span class="nu0">-4</span>.fc11.x86_64</div>
</li>
</ol>
</div>
<p>Значит, нам нужен пакет libSM.i586.</li>
<li>Качаем нужную rpm-ку. Например, найдя ее через <a href="http://www.rpmfind.net/linux/rpm2html/search.php?query=libSM+fc11+i386&#038;submit=Search+...&#038;system=&#038;arch=">rpmfind.net</a>.</li>
<li>Заходим в нее с помощью Midnight Commander-ом (подсветив файл и нажав &lt;Enter&gt;), ищем файл CONTENTS.cpio, через F5 достаем (разархивируем) нужные файлы из каталогов lib, складываем куда-то в одно место, например в /usr/local/lib/32bit. </li>
<li>Добавлем в файл /etc/ld.so.conf строку с путем к скачанным библиотекам:
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$cat</span> <span class="sy0">/</span>etc<span class="sy0">/</span><span class="kw2">ld</span>.so.conf</div>
</li>
<li class="li1">
<div class="de1">include <span class="kw2">ld</span>.so.conf.d<span class="sy0">/*</span>.conf</div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">/</span>usr<span class="sy0">/</span><span class="kw3">local</span><span class="sy0">/</span>lib<span class="sy0">/</span>32bit</div>
</li>
</ol>
</div>
</li>
<li>Запускаем по рутом команду ldconfig.</li>
<li>Пробуем запускать skype. Если опять ругается на отсутствие какой-то библиотеки, провторяем пп. 1-5 уже для следующей библиотеки.</li>
</ol>


<p>Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2009/06/19/canon-pixma-ip1000-in-linux/' rel='bookmark' title='Permanent Link: Установка принтера Canon Pixma iP1000 в Linux'>Установка принтера Canon Pixma iP1000 в Linux</a> <small>1. Ставим rpm-файлы: bjfilter-common-2.50-2.i386.rpm, bjfilter-pixmaip1000-2.50-2.i386.rpm, bjfilter-pixmaip1000-lprng-2.50-2.i386.rpm 2. Перезапускаем cups: /etc/rc.d/init.d/cups restart 3. Выполняем команду для окончательной регистрации принтера: lpadmin -p...</small></li>
<li><a href='http://avz.org.ua/wp/2009/05/22/linux-installcheckpoints/' rel='bookmark' title='Permanent Link: Порядок настройки свежеустановленной Linux'>Порядок настройки свежеустановленной Linux</a> <small>Здесь описан порядок начальной настройки свежеустановленной операционной системы (на примере RedHat-подобных дистрибутивов, таких как Fedora, CentOS и т.п). Проверить, что...</small></li>
<li><a href='http://avz.org.ua/wp/2009/01/09/linux-nat/' rel='bookmark' title='Permanent Link: NAT в linux'>NAT в linux</a> <small>Исходные данные: есть роутер с двумя физическими интерфейсами &#8211; eth0 (внешний) и eth1 (внутренний). На внутреннем интерфейсе прибит ip-адрес 192.168.0.1/24....</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://avz.org.ua/wp/2009/11/23/skype-linux-64bi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
