Записи с метками Администрирование
WordPress: используем Sphinx для индексации и поиска
21 Май
Sphinx используется в движке Мтааламу.ру (LiveStreet) для индексации и поиска и работает действительно хорошо. Не помешает такая система и WordPress’у. В этом нам поможет плагин WordPress Sphinx Search Plugin. Плагин настраивался в Ubuntu Server.
Для начала, создаем директорию за пределами DOCUMENT_ROOT /var/www/sphinx. У Apache должны быть права на запись в нее. Читать дальше >
Монтирование удаленных ресурсов с помощью Gigolo
17 Февраль
Решил перейти на CrunchBang Linux. Всем он хорош, но, так как вместо Gnome используется OpenBox + PCman, простых способов создать закладки с подключениями к серверам нет.
Есть такой проект – Gigolo. Представляет собою оболочку для монтирования различных сетевых ресурсов.
sudo apt-get install gigolo
Так как файловый менеджер PCMan, установленный в CrunchBang не поддерживает URI вида sftp://user@192.168.0.5/, установим и настроим gvfs-fuse:
sudo apt-get install gvfs-fuse
Собственно, вся настройка заключается в добавлении пользователя в группу fuse:
sudo gpasswd -a username fuse
Вот и все, выходим из системы и заходим заново, подключаемся, щелкаем на иконке подключения и работаем с удаленным ресурсом как с обычной директорией.
Установка OpenDS Directory Server в Ubuntu Server 8.04
23 Декабрь
Сегодня мы установим службу каталогов OpenDS Directory Server
Скачивам архива вида OpenDS-2.x.x.zip отсюда:
https://opends.dev.java.net/public/downloads_index.html
Устанавливаем Java 6 JDK:
sudo apt-get install sun-java6-jdk
Копируем содержимое архива, например, в /var/opends и запускаем установку:
cd /var/opends
./setup
Вводим имя менеджера каталога (по-умолчанию Directory Manager), его пароль, порт LDAP (по-умолчанию – 389), порт для утилиты администрирования (по-умолчанию – 4444), базовый DN (например, dc=mtaalamu,dc=ru):
Установка OpenSSO в Linux (Ubuntu Server 8.04)
22 Декабрь

Проект Open Web SSO project (OpenSSO) – это сервис, разработанный Sun Microsystems, позволяющий упростить процесс авторизации пользователей в сетевой инфраструктуре. OpenSSO берет всю работу по поддержке различных механизмов авторизации на себя.
Сайт проекта:
Скачать можно здесь:
https://opensso.dev.java.net/public/use/index.html
Я устанавливал на платформе Ubuntu Server 8.04.
Скачиваем архив вида opensso_express_20090901.zip:
wget http://download.java.net/general/opensso/stable/opensso-build8/opensso_express_20090901.zip
Распаковываем, например, в ~/opensso.
Также необходим сервер Apache Tomcat, скачиваем здесь: Читать дальше >
Ограничиваем права пользователя в оболочке c помощью Limited Shell (lshell) в Debian Lenny
11 Декабрь
Limited Shell помогает в тех ситуациях, когда по каким-либо причинам chroot не подходит, а защитить систему нужно … хоть символически. Принцип действия прост – lshell позволяет выполнять только определенный администратором набор команд, переходить только в разрешенные каталоги, отслеживает попытки запуска других оболочек.
Для Debian Lenny я скачал архив с исходным кодом. Распаковываем, запускаем:
python setup.py install --no-compile
running install
running build
running build_py
creating build
creating build/lib
copying lshellmodule/lshell.py -> build/lib
running build_scripts
creating build/scripts-2.5
copying and adjusting bin/lshell -> build/scripts-2.5
changing mode of build/scripts-2.5/lshell from 644 to 755
running install_lib
copying build/lib/lshell.py -> /usr/lib/python2.5/site-packages
running install_scripts
copying build/scripts-2.5/lshell -> /usr/bin
changing mode of /usr/bin/lshell to 755
running install_data
copying etc/lshell.conf -> /etc
creating /usr/share/doc/lshell
copying README -> /usr/share/doc/lshell
copying COPYING -> /usr/share/doc/lshell
copying CHANGES -> /usr/share/doc/lshell
copying man/lshell.1 -> /usr/share/man/man1/
running install_egg_info
Writing /usr/lib/python2.5/site-packages/lshell-0.9.8.egg-info
Все, lshell установлен.
Создаем директорию для log файлов:
mkdir /var/log/lshell
Создаем группу lshellg:
groupadd --system lshellg
Изменяем права на директорию с log файлами:
chown :lshellg /var/log/lshell
chmod 770 /var/log/lshell
Изменяем shell пользователя и добавляем его в группу lshellg:
usermod -s /usr/bin/lshell user1
usermod -a -G lshellg user1
Настройки хранятся в файле /etc/lshell.conf и подробно описаны в README. Мы добавляем следующие строки для пользователя user1 в конец конфигурационного файла:
[user1]
allowed : ['ls','ll','echo','cd','cp','rm','mkdir','rmdir','wget','vi','vim']
path : ['/var/www/1', '/var/www/2', '/var/www/3']
forbidden : [';', '&', '|','`','>','<']
warning_counter : 5
aliases : {'ll':'ls -l', 'vi':'vim'}
Суть – данные настройки имеют больший приоритет, чем настройки из секции [default] конфигурационного файла. Разрешены только определенные команды (allowed), помимо домашней, разрешены переходы в несколько директорий (path), в консоли запрещены перенаправления ввода-вывода и прочие вещи (forbidden), разрешено наступать на мины 5 раз, перед тем, как пользователь будет отключен (warning_counter), прописаны алиасы команд.
Это разумеется не панацея. Нужно внимательно следить за тем, какие команды разрешены и какие в них «недокументированные возможности». Например, разрешая mc можем заходить во все директории, ну и т.п.
Запрещаем выполнять команды по ssh, но разрешаем scp, sftp, cvs, rdist или rsync в Debian Lenny
11 Декабрь
Иногда нужно запретить какому-либо пользователю выполнение команд по ssh, но разрешить только scp, sftp, cvs, rdist или rsync.
Устанавливаем:
apt-get install rssh
Меняем shell по-умолчанию у пользователя:
usermod -s /usr/bin/rssh user
По-умолчанию все запрещено.
Редактируем /etc/rssh.conf, разблокируя то, что нам нужно:
#allowscp
#allowsftp
#allowcvs
#allowrdist
#allowrsync
Запуск Java и Apache Felix в chroot jail окружении в Debian Lenny
9 Декабрь
Создание отдельного chroot окружения для Java и Apache Felix позволяет повысить безопасность сервера. Настройку chroot будем производить с помощью утилиты makejail:
apt-get install makejail
Создаем директорию, в которой будет работать Java и Apache Felix.
mkdir /var/flx
Скачиваем свежий JDK и устанавливаем его, запустив бинарный файл в директории /var/flx – он будет распакован в директорию jdk1.6.0_xx.
Директорию с рабочим Apache Felix скопируем, например, в /var/flx/felix.
Создаем пользователя flx, от имени которого Apache Felix будет запускаться в chroot окружении:
adduser --home /var/flx --no-create-home --system --group flx
Создаем скрипт /var/flx/felix-start.sh – он будет запускаться внутри chroot окружения и стартовать Java и Apache Felix:
# !/bin/sh
cd /felix
/jdk1.6.0_18/bin/java -jar ./bin/felix.jar
Пока директория /var/flx выглядит так:
jdk1.6.0_18
felix
felix-start.sh
Меняем владельцев директорий и файлов в /var/flx:
chown root:root -R /var/flx
chown flx:flx /var/flx
chown flx:flx -R /var/flx/felix
chown flx:flx /var/flx/felix-start.sh
chmod 750 /var/flx/
chmod 750 /var/flx/felix
chmod 750 /var/flx/felix-start.sh
В /etc/makejail/ создаем файл felix.py следующего содержания:
chroot="/var/flx"
testCommandsInsideJail=['sh', 'cd', '/var/flx/jdk1.6.0_18/bin/java']
users=["flx"]
groups=["flx"]
Запускаем утилиту makejail, указав созданный конфигурационный файл. makejail проверит все зависимости команд, перечисленных в testCommandsInsideJail и скопирует необходимые библиотеки в /var/flx:
makejail /etc/makejail/felix.py
Получаем предупреждение о том, что /proc придется примонтировать:
WARNING:
You'll need the filesystem procfs mounted as /var/flx/proc
It's mounted now, you can mount it again for example before starting the daemon with :
mount -t proc proc /var/flx/proc
Не забываем проверить, чтобы в /var/flx/etc/passwd, /var/flx/etc/group и /var/flx/etc/shadow (если есть) не было записей других пользователей и групп!
Создаем tmp директорию:
mkdir /var/flx/tmp
chown flx:flx /var/flx/tmp
Теперь /var/flx выглядит так:
drwxr-xr-x 2 root root 4096 Дек 9 18:56 bin
drwxr-xr-x 2 root root 4096 Дек 9 18:56 dev
drwxr-xr-x 2 root root 4096 Дек 9 19:10 etc
drwxr-x--- 7 flx flx 4096 Дек 9 19:12 felix
-rwxr-x--- 1 flx flx 63 Дек 9 19:08 felix-start.sh
drwxr-xr-x 10 root root 4096 Дек 9 16:39 jdk1.6.0_18
drwxr-xr-x 4 root root 4096 Дек 9 18:57 lib
dr-xr-xr-x 2 root root 4096 Дек 9 18:56 proc
drwxr-xr-x 2 root root 4096 Дек 9 18:57 sbin
drwxr-xr-x 2 root root 4096 Сен 16 2008 selinux
drwxr-xr-x 3 root root 4096 Дек 9 18:56 sys
drwxr-xr-x 3 flx flx 4096 Дек 9 19:06 tmp
drwxr-xr-x 4 root root 4096 Дек 9 18:56 usr
drwxr-xr-x 3 root root 4096 Дек 9 18:56 var
Создаем 2 скрипта для запуска и остановки Apache Felix в chroot окружении:
/etc/felix-chroot-start.sh:
# !/bin/sh
mount -t proc proc /var/flx/proc
start-stop-daemon --start --chroot /var/flx --chuid flx:flx --exec felix-start.sh &
/etc/felix-chroot-stop.sh:
# !/bin/sh
killall felix-start.sh
killall java -u flx
umount /var/flx/proc
Меняем права:
chmod 750 /etc/felix-chroot-start.sh /etc/felix-chroot-stop.sh
Вот и все. Запускаем /etc/felix-chroot-start.sh:
Поддержка USB в VirtualBox – Ubuntu 8.04
3 Декабрь
У меня в VirtualBox (не OSE версия) не заработала поддержка USB. Согласно мануалу сделал так:
sudo grep vbox /etc/group
Видим id группы vboxusers:
vboxusers:id группы::user
Правим /etc/init.d/mountkernfs.sh:
sudo gedit /etc/init.d/mountkernfs.sh
Добавляем строки в конце функции do_start():
Для Hardy:
domount usbfs usbdevfs /proc/bus/usb -onoexec,nosuid,nodev,devgid=id группы,devmode=664
Для Intrepid:
domount usbfs "" /proc/bus/usb usbdevfs -onoexec,nosuid,nodev,devgid=id группы,devmode=664
Заменив id группы на число – id группы vboxusers.
Перезагружаемся.
Массовое переименование таблиц базы данных MySQL
18 Ноябрь
Полезный скрипт на php:
< ?php $db_server = "localhost"; // hostname MySQL server $db_username = "username"; // username MySQL server $db_password = "password"; // password MySQL server $db_name = "database"; // database name $pattern = "pattern_"; // search string $new_pattern = "new_pattern_"; // replacement string, // can be empty // login to MySQL server $link = mysql_connect( $db_server, $db_username, $db_password); if (!$link) { die('Could not connect: ' . mysql_error()); } // list all tables in the database containing the search pattern $sql = "SHOW TABLES FROM `" . $db_name . "`"; $sql .= " LIKE '%" . $pattern . "%'"; $result = mysql_query ( $sql, $link ); if (!$result) { die("Invalid query: " . mysql_error( $link )); } $renamed = 0; $failed = 0; while ( $row = mysql_fetch_array ($result) ) { // rename every table by replacing the search pattern // with a new pattern $table_name = $row[0]; $new_table_name = str_replace ( $pattern, $new_pattern, $table_name); $sql = "RENAME TABLE `" . $db_name . "`.`" . $table_name . "`"; $sql .= " TO `" . $db_name . "`.`" . $new_table_name . "`"; $result_rename = mysql_query ( $sql, $link ); if ($result_rename) { echo "Table `" . $table_name . "` renamed to :`"; echo $new_table_name . "`.\n"; $renamed++; } else { // notify when the renaming failed and show reason why echo "Renaming of table `" . $table_name . "` has failed: "; echo mysql_error( $link ) . "\n"; $failed++; } } echo $renamed . " tables were renamed, " . $failed . " failed.\n"; // close connection to MySQL server mysql_close( $link ); ?>
Нашел здесь.
Делаем загрузочную флешку с Linux по-быстрому
17 Ноябрь
UNetbootin – отличная утилита для создания загрузочных флешек из образов самых разных дистрибутивов (кстати, образы может сама и скачать). Как-то раньше не приходилось пользоваться этой утилитой – но, как оказалось, работает.
Простое монтирование удаленного диска по sftp в консоли
31 Октябрь
Если у нас есть доступ по ssh, следовательно есть и возможность копировать файлы по sftp (для тех кто в танке). Копировать файлы по ssh можно, например, с помощью Midnight Commander’а, но прописывать в его окне параметры соединения и пароль бывает не очень удобно. Поэтому проще монтировать удаленную файловую систему в консоли:
sudo apt-get install sshfs
В некоторых случаях необходимо добавить пользователя в группу fuse:
sudo adduser имя-пользователя fuse
В Ubuntu 9.10 этого делать не понадобилось.
Монтируем:
sshfs имя-пользователя@192.168.1.1:/удаленная-директория/ ./локальная-директория
Wine и русские буквы
19 Октябрь
Простое решение (http://v-i-y.livejournal.com/133902.html):
Создаем локаль:
sudo localedef -c -i ru_RU -f CP1251 ru_RU.CP1251
Теперь запускаем wine-приложение так:
* из командной строки:
LANG="ru_RU.cp1251" wine my.exe
* из desktop launcher:
env LANG="ru_RU.cp1251" wine my.exe
Результат:
WordPress: Datafeedr Random Ads V2
7 Октябрь
Отличный плагин для размещения на сайте под управлением WordPress рекламы и не только:
Сброс пароля WordPress в MySQL
7 Октябрь
Боян, но все же:
mysql -uroot -p
use имя-базы;
Если забыли префикс:
show tables;
Меняем на пароль ‘password’:
UPDATE wp_users SET user_pass='5f4dcc3b5aa765d61d8327deb882cf99' WHERE ID = 1;
Восстановление данных NTFS разделов в Linux
18 Сентябрь
Восстановить данные NTFS раздела с испорченной файловой системой или загрузочной записью можно, например, с помощью этих двух утилит: Читать дальше >





