- Подписка на печатную версию:
- Подписка на электронную версию:
- Подшивки старых номеров журнала (печатные версии)
LXF141:Ответы
Материал из Linuxformat.
Содержание |
Ответы
- Есть вопрос по открытому ПО? Пишите нам по адресу answers@linuxformat.ru
1 Как найти файлы
В После прочтения статьи м-ра Бэкона, заражающейсвоимэнтузиазмом[в LXF134,как было устоять перед Getting Things Gnome (GTG)? Задача — как раз для рассеянного старика. Одна беда: я не могу определить, в целях резервного копирования, где GTG хранит свои данные. Я попытался искать по шаблону *gtg* и кое-какие файлы GTG обнаружил, но ни один из них не был похож на пользовательские данные. У меня Ubuntu Lucid/Maverick и Mandriva 2010.1.
george84, с форумов
О GTG хранит свои конфигурационные файлы в каталогах ~/.config/gtg, а файлы данных – в каталогах ~/.local/share/gtg (~ означает Ваш домашний каталог). Это стандартные каталоги для размещения информации о конфигурации и данных, но не все программы настолько хорошо себя ведут. Их поиск с помощью ls или файлового менеджера может оказаться неудачным, потому что по умолчанию ни тот, ни другой не выполняет поиск в скрытых каталогах. Но есть способ нахождения файлов, работающий практически всегда. Запустите терминал и скомандуйте
touch now
Затем запустите программу, сохраните какие-нибудь изменения в ее данных и конфигурации, и закройте ее. Учтите, что в данном случае мало просто свернуть значок программы в системный лоток, так как некоторые программы сбрасывают информацию на диск только при фактическом выходе. Теперь вернитесь в окно терминала и дайте команду:
find ~ -newer now
Первая команда создает пустой файл с именем now. Впрочем, имя не имеет значения: можете назвать файл, как угодно. Вторая команда находит все файлы в Вашем домашнем каталоге, созданные или модифицированные позднее файла now (или созданного Вами файла с любым другим именем). Поэтому Вы получите все, что было записано изучаемой Вами программой. Данный метод не обязательно учтет каждый использованный файл, но те файлы, которые будут обнаружены, дадут Вам информацию о каталогах, где интересующая Вас программа хранит свою информацию.
Заодно будут прихвачены файлы, модифицированные другими программами, которые работали в фоновом режиме, например, Вашим менеджером рабочего стола. Однако логика и здравый смысл помогут Вам отобрать именно ту информацию, которая Вам нужна. НБ
2 Общий доступ к файлам
В В моей системе я довольно давно выбираю для загрузки Peppermint Ice либо Ubuntu Netbook Edition. Можно ли наладить обмен файлами между ними, и если да, то как?
demag, с форумов
О По умолчанию при инсталляции обоих этих дистрибутивов все установится на одну файловую систему, без отдельного раздела /home. Но иметь общий каталог в домашних каталогах обоих установленных дистрибутивов все же возможно. Во-первых, Вам нужно будет решить, установка какого дистрибутива будет фактически содержать файлы. Пусть это будет Peppermint, просто потому, что Вы упомянули его первым. С этим дистрибутивом ничего особенного делать не надо, просто сохраните свои файлы в подходящих каталогах внутри Вашего домашнего каталога: скажем, каталогах documents, music и photos. Затем Вам понадобится примонтировать Вашу файловую систему Peppermint в Ubuntu, поэтому загрузите Ubuntu, откройте терминал и дайте команды:
sudo mkdir -p /mnt/peppermint sudo gedit /etc/fstab
Затем с помощью Gedit добавьте следующую строку в fstab:
/dev/sda1 /mnt/peppermint ext4 defaults 0 0
Здесь подразумевается, что Peppermint Ice установлен на /dev/sda1, а так оно и будет, если первым Вы установили именно этот дистрибутив.
Проверьте, что вся конфигурация работает, сохранив файл и скомандовав
sudo mount -a ls /mnt/peppermint
В результате Вы должны увидеть содержимое установленной копии Peppermint. Теперь, чтобы сделать каталоги, вложенные в домашний каталог Peppermint, доступными через каталог home в Ubuntu, дайте следующие команды:
cd ln -s /mnt/peppermint/home/USER/documents . ln -s /mnt/peppermint/home/USER/music . ln -s /mnt/peppermint/home/USER/photos .
Первая команда гарантирует, что Вы находитесь в своем домашнем каталоге. Затем Вы создаете символические ссылки из каждого каталога, который требуется предоставить в общий доступ. Строку USER замените Вашим именем пользователя в системе Peppermint. Заключительная точка (.) в каждой из перечисленных команд обозначает текущий каталог. Кроме того, Вы могли бы предоставить в общий доступ только один каталог и сохранять туда все файлы и каталоги, предоставляемые в общий доступ. Выбор зависит от Ваших организационных предпочтений.
Ваши идентификаторы пользователя [user ID] в обоих дистрибутивах должны быть одинаковы, чтобы избежать путаницы с полномочиями. К счастью, с Вашей парой дистрибутивов, как и с большинством других, этой проблемы нет, потому что первый пользователь, созданный при установке, всегда получает идентификатор 1000.
Недостаток этого подхода в том, что для получения доступа к файлам Вам нужно постоянно держать наготове Вашу инсталляцию Peppermint. Альтернатива – применить GParted, чтобы освободить некоторое пространство на Вашем жестком диске и создать отдельную файловую систему, которую после этого можно будет монтировать из Вашего домашнего каталога в каждом дистрибутиве: ведь файловую систему в Linux можно примонтировать где угодно. Поэтому, если новый раздел был /dev/sda5 под ext3, добавьте следующую строку в файл fstab каждого дистрибутива:
/dev/sda5 /home/USER/shared ext3 defaults 0 0
Затем создайте в Вашем домашнем каталоге общий каталог, убедитесь, что он монтируется, а также – что он принадлежит Вашему пользователю (чтобы Вы могли писать в него файлы). Для этого скомандуйте
mkdir shared sudo mount -a sudo chown USER: shared
ПХ
3 Ошибка-обманка
В Более 10 лет я пытался заставить Linux работать так, чтобы система меня полностью удовлетворяла. Наконец, в этом году я одолел порог, и сейчас имею четыре компьютера, работающих под управлением Mint и PCLinuxOS и способных даже общаться друг с другом.
Лет пять я регулярно читаю LXF. Сейчас я являюсь подписчиком, и каждый месяц нахожу статью или вопрос, как будто специально написанные для меня. В LXF139, д-р Браун упоминал о Meld, а он-то мне и нужен. Я хочу выполнять пофайловое сравнение разделов диска, чтобы убедиться, что данные, перенесенные с одного ПК на другой (файл-сервер с жестким диском 1,5 TБ) через NFS, скопированы точно. Я обнаружил, что моя копия PCLinuxOS не обрабатывает файлы с именами, которые содержат символы французского алфавита с диакритическими знаками. Кроме того, я столкнулся с проблемами неустойчивой передачи через NFS. Проблему эту я в итоге решу, но сейчас меня волнует другое. Когда я устанавливал Meld через Synaptic, программа не заработала, но вывела в окне терминала сообщение
‘Meld requires PyGTK 2.8.0 or higher.’
При этом, по сведениям, выводимым Synaptic, установлена последняя версия пакета PyGTK.
balbkubrox, с форумов
О Об этом уже сообщалось в системе слежения за ошибками Ubuntu, и в релизе 10.10 ошибка исправлена, так что и в Linux Mint 10 проблемы не должно быть. Но Вам не обязательно обновлять версию, поскольку эта проблема – не что иное, как отсутствующая зависимость. Вы логично предположили, что в Вашем сообщении об ошибке говорилось о пакете PyGTK. Но на самом деле речь шла о модуле PyGTK в пакете python-gobject. Интуитивно, а? Короче, установите python-gobject, и Meld заработает.
А если нет, попробуйте запустить программу из терминала, а не из меню. Конечно, чудесного исцеления не произойдет, зато Вы, скорее всего, заполучите более информативные сообщения об ошибках – что позволит проследить проблему до ее истоков, а не гоняться за «призраками».
Возможно, Вы предпочтете пользоваться diff:
diff --quiet --recursive /local/path /remote/path
Эта команда сравнивает файлы, расположенные в двух указанных каталогах, и сообщает, если какие-либо файлы отсутствуют или различаются. НБ
4 3G в 3
В У меня имеются настольный ПК (1.1‑ГГц Athlon) с Ubuntu, ноутбук HP 7070 (Ubuntu), нетбук Acer Aspire One (UNR) и Mac mini, на нем я сочиняю и аранжирую музыку в Sibelius. К Internet я подключаюсь через Vodafone 3G, потому что там, где я живу, ADSL по сути непригодно.
Мои компьютеры так и просятся в локальную сеть, но мне никак не удается ее наладить. Сначала я попытался воспользоваться хабом 3Com OfficeConnect Ethernet Hub 8, который как раз подвернулся мне под руку. Я приткнул его к настольному ПК с запущенным соединением 3G и подключил сетевым кабелем ноутбуки с Ubuntu, но так и не «увидел» ни хаб, ни ноутбуки. Я не представляю, как добыть интерфейск 3Com (устройство мне подарили, не приложив ни документации, ни диска), и не могу обнаружить его с помощью dmesg.
Настольный ПК Athlon имеет беспроводной адаптер. Можно ли создать локальную сеть, воспользовавшись одним из двух вариантов: либо использовать старичка Athlon как маршрутизатор 3G для подключения к Internet, а затем подключить ноутбуки и Mac через 3Com с помощью сетевых кабелей и хаба, либо создать на его основе точку беспроводного доступа, которую ноутбук, нетбук и Mac mini смогут использовать, подключаясь к ней через свои беспроводные адаптеры? Буду благодарен за совет, рекомендующий самый простой подход для моего парка машин.
Джаспер Кук [Jasper Cook]
О OfficeConnect – старое и кривоватое устройство; одно такое до сих пор пылится у меня на чердаке, где, пожалуй, ему и место. В LXF139/140 мы публиковали руководство, посвященное настройке Internet-шлюза, но там речь шла о компьютере, специально выделенном для этой цели. Кроме того, обычный настольный ПК можно применять и для предоставления Internet-подключения в общий доступ остальным компьютерам сети.
Первый шаг – добиться работы Вашей локальной сети. Точка беспроводного доступа позволяет это сделать, но использование проводных соединений намного проще. Подключите все компьютеры к концентратору (для этого подойдет и OfficeConnect, но стандартный Ethernet-коммутатор будет лучшим и более дешевым выбором).
Большинство ОС и дистрибутивов Linux при автоматической настройке сетевых соединений используют по умолчанию DHCP, и, возможно, Ваша первая неудача объясняется отсутствием в Вашей сети сервера DHCP. Как говорилось в LXF139/140, Вы можете настроить в качестве сервера DHCP dnsmasq или настроить соединения вручную. Назначьте всем компьютерам IP-адреса из одного и того же диапазона – например, дайте настольному ПК адрес 192.168.1.1, а при присвоении адреса каждому следующему компьютеру увеличивайте значение последней цифры на единицу.
Для маски подсети [netmask] на каждом из компьютеров укажите значение 255.255.255.0. Далее, на всех компьютерах, кроме настольного, укажите как адрес шлюза [gateway] адрес настольного ПК: 192.168.1.1. В качестве DNS-серверов для каждого компьютера укажите DNS-серверы Вашего провайдера.
Теперь каждый компьютер в локальной сети должен видеть остальные. Откройте на каждом из них терминал и скомандуйте:
ping -c 3 192.168.1.1
Если Вы увидите:
3 packets transmitted, 3 received, 0% packet loss
то пока все в порядке. Выполнив это, настройте настольный ПК на перенаправление пакетов с других компьютеров. Простейшим вариантом снова будет использование рекомендаций из статьи прошло гономера. Отредактируйте файл /etc/sysctl.conf от имени root, добавив в файл следующую строку:
net.ipv4.ip_forward = 1
Установите Shorewall и скопируйте содержимое файла /usr/share/doc/shorewall/Sample/twointerfaces в /etc/shorewall. Там отредактируйте файл interfaces, назначив eth0 зоне loc, а Ваш интерфейс 3G (обычно это интерфейс ppp0) – зоне net. После перезагрузки Вы должны получить возможность выхода в Internet с любого компьютера.
Впрочем, использование DNS-серверов Вашего ISP не слишком эффективно. Поэтому установите на Вашем настольном ПК программу dnsmasq, убедитесь в том, что она установлена как сервис, стартующий при запуске, и затем установите для каждого из компьютеров сети адрес 192.168.1.1 в качестве адреса DNS-сервера. Это означает, что клиенты будут запрашивать данные у настольного ПК, который будет получать и запоминать информацию от Вашего провайдера. НБ
5 Ext плюс 1
В Каков простейший способ перейти с ext3 на ext4? Я прочел несколько руководств, но все они несколько отпугивают. Я работаю с Linux Mint, и вскоре должна выйти новая версия, поэтому я хочу установить корневой раздел заново, отформатировать его под ext4 и объявить /home как имеющий тип ext4, но без его переформатирования. Если это — хорошая стратегия, то могу ли я сделать то же самое с моим вторым диском, который я использую для хранения видео и музыки? Обратите внимание, что я не поддерживаю двойной загрузки с Windows — я пользуюсь только Linux — хотя и работаю в Windows через VirtualBox. Моя текущая конфигурация такова:
sda1 /ext3 applications sda3 /home ext3 personal data sdb1 /storage ext3 movies & music sdb2 /archive ext3 documents etc.
Аллан [Allan]
О
Вы можете объявить свою файловую систему ext3 как отформатированную под ext4 в файле /etc/fstab, что Вы фактически и сделаете с каталогом /home, если будете действовать так, как Вы описали. Но имейте в виду, что проку в этом не будет. Файловая система будет примонтирована с использованием драйвера ext4, но по-прежнему останется файловой системой ext3, и ни одна из новых функций ext4 не активизируется.
Для полного преобразования файловой системы в формат ext4 необходима пара лишних шагов, но прежде чем выполнять их, создайте резервную копию своих данных. Процесс преобразования безопасен, но всегда есть риск несчастного случая – например, сбоя питания. Чтобы преобразовать Ваш раздел /archive, необходимо сначала отмонтировать его, затем преобразовать с помощью tune2fs, удостоверить корректность преобразования и оптимизировать раздел с помощью fsck, а затем снова его примонтировать.
umount /dev/sdb2 tune2fs -O extents,uninit_bg,dir_index /dev/sdb2 e2fsck -fpDC0 /dev/sdb2 mount /dev/sdb2/archive
Для проверки, что файловая система примонтирована как ext4, проверьте вывод команд mount или df -T:
mount | grep sdb2 df -Th /archive.
Затем откройте файл /etc/fstab' и замените строку ext3 строкой ext4. Убедиться в том, что теперь файловая система действительно имеет формат ext4, можно с помощью команды dumpe2fs. Запустите ее и просмотрите строку функций файловой системы – файловая система ext4 имеет функцию экстентов [extent]:
dumpe2fs -h/dev/sdb2
С файловыми системами на /dev/sdb проделать это несложно, но просто так отмонтировать / или /home нельзя, поэтому загрузите компьютер с Live CD, и тогда Вы сможете выполнить описанные операции и над этими разделами. Отмонтировать /home можно, но это потребует дополнительной работы, причем, чтобы отмонтировать /, Вам в любом случае потребуется загрузка с Live CD. НБ
6 Копирование издали
В У меня есть три сервера (Ubuntu, FreeNAS и Windows 2008 Server), и я хочу копировать файлы на сервер Ubuntu. Проблема в том, что серверы располагаются в разных городах. Как мне применить команды Linux, типа rsync или cp, через протокол FTP, или, может быть, есть и другой выбор?
Руй Соуза [Rui Sousa]
О
Простейший и самый безопасный метод решения Вашей задачи – SSH, точнее, команды scp и sftp, входящие в SSH. В простейшем варианте, одиночный файл можно скопировать так:
scp -p user1@server1:/path/to/file user2@server2:/dest/path/
а одиночный каталог – так:
scp -pr user1@server1:/path/to/dir user2@server2:/dest/path/
Как и в команде cp, можно указать множество путей, как на локальном, так и на удаленном хосте, причем последний путь трактуется как пункт назначения. На каждом компьютере должен быть установлен пакет ssh-server, а на серверах этот пакет обычно устанавливается по умолчанию, хотя не всегда по умолчанию активизируется. На компьютерах Windows для взаимодействия с серверами SSH можно использовать PuTTY.
Если Вы хотите синхронизировать содержимое каталогов, поможет команда rsync, которая использует SSH в качестве транспортной среды по умолчанию, если либо источник, либо пункт назначения находятся на удаленном хосте.
rsync -a user1@server1:/path/to/sync/user2@server2:/dest/path/to/sync/
Обратите внимание, что в команде rsync важны заключительные символы наклонной черты (/) – пропуск одного или обоих этих символов меняет поведение команды. Пакет OpenSSH включает в свой состав сервер SFTP, активизируемый по умолчанию, когда работает сервис SSH, так что вместо ssh или rsync Вы можете воспользоваться своим любимым FTP-клиентом или файловым менеджером (при условии, что он поддерживает SFTP) для перехода в sftp://user@server/path/to/dir и копирования файлов в знакомой среде.
Использование ssh, непосредственное либо через rsync или SFTP, означает, что придется каждый раз вводить пароль, причем достаточно сложный, чтобы помешать попыткам взлома. SSH обеспечивает аутентификацию на основе ключей, благодаря чему необходимость в пароле отпадает.
На клиентской машине скомандуйте:
ssh-keygen
Согласитесь с предложенным именем. Парольная фраза не обязательна, и если Вы не хотите ее использовать, просто нажмите клавишу Enter. Однако следует иметь в виду, что этот подход небезопасен, если клиентский компьютер окажется взломан, поэтому серьезно подумайте, прежде чем применять его на портативном компьютере. В результате в каталоге ~/.ssh будут созданы два файла, id_ rsa и id_rsa.pub, представляющие собой Ваши секретный и открытый ключи, соответственно. Добавьте содержимое открытого ключа в состав файла .ssh/authorized_keys в домашнем каталоге нужного Вам пользователя, что обычно подразумевает копирование ключа с помощью scp, а затем запуск команд:
cat /path/to/id_rsa.pub >>~/.ssh/authorized_keys rm/path/to/id_rsa.pub
Не копируйте файл в каталог .ssh, чтобы не записать его поверх существующих открытых ключей.
Заполучив возможность регистрироваться с помощью ключа, Вы можете отказаться от аутентификации с помощью паролей и, таким образом, укрепить безопасность, отредактировав /etc/ssh/sshd_config с целью изменить строку PasswordAuthentication, которая, вероятно, закомментирована, на такую:
PasswordAuthentication no
Если Вам нужен доступ к машине с правами root, добавьте следующую строку:
PermitRootLogin without-password
Однако делать это нужно только при реальной необходимости; часто намного безопаснее регистрироваться в системе от имени определенного пользователя и настроить команду sudo так, чтобы она разрешала пользователям запускать от имени root любые нужные им команды.
Еще более подробная информация об SSH, урок из LXF119. НБ
7 Не сортируется
В У меня проблема с сортировкой файла. Файл содержит около 10000 строк, и все они разные — разное количество полей, разные длины, и т. д., с единственным исключением: в каждой строке в позиции 88 стоит либо +, либо -. Можно ли выполнить сортировку по этому символу? Я пробовал команду sort -k, но, похоже, позиция, которую она принимает, зависит от полей записи и, возможно, от позиции символа внутри поля. Я не очень-то понимаю, что такое «поле», но предполагаю, что оно связано с наличием символа пробела. В этом смысле позиция 88 не всегда имеет один и тот же номер поля. Нельзя ли дать указание команде поиска рассматривать всю строку как единое поле?
Джой С [Joey C]
О Для параметра -k команды sort каждая строка разбивается на некоторое количество полей, разделенных конкретным символом. Разделителем по умолчанию считается любой пробел, так что команда sort -k N будет выполнять сортировку по N-му слову каждой строки. Судя по Вашему описанию, количество и длина слов в строках различны. Фокус в данном случае заключается в переопределении разделителя полей таким образом, чтобы этот символ либо вообще не встречался в строке, либо, по крайней мере, встречался бы не ранее того символа, по которому вам нужна сортировка. Здесь неплохим выбором будет символ перевода строки [line feed], потому что он встречается только в конце строки, и, таким образом, каждая строка будет рассматриваться как единое поле.
Для этой цели применяется аргумент -t или --fieldseparator, так что Вы можете воспользоваться одной из следующих команд:
sort --field-separator=”\n” --key=1.88 sort -t \n -key 1.88
Обе выполняют сортировку по 88-му символу каждой строки. НБ
8 Разрешение SiS
В У меня Ubuntu 8.10 на ноутбуке Novatech. Он имеет 15,4‑дюймовый монитор и графический адаптер SiS Mirage 3 (чипсет 671/771), для которого раньше я мог установить разрешение не выше 800 × 600. Проштудировав форумы, я нашел Deb-файл специально для чипсета 671/771 и Ubuntu 8.10. Это решило мою проблему, но я хочу перейти на 10.10, и опять получу разрешение не выше 800 × 600. SiS никакой помощи не предоставляет, и мне не найти для Ubuntu 10.10 решения, подобного выручившему меня с релизом 8.10. Нет ли способа получить на ноутбуке Novatech разумное экранное разрешение для Ubuntu 10.10?
Крис Хоар [Chris Hoare]
О Эти двоичные релизы драйверов – источник головной боли, потому что двоичный интерфейс приложений [Application Binary Interface, ABI] X.org меняется достаточно часто. То есть драйвер, cкомпилированный для конкретной версии, обычно не работает с другими.
Мы отыскали драйверы, скомпилированные для версии X.org, поставляемой с Ubuntu 10.10, на сайте http://ajoliveira.com/ajoliveira/uk/software/xorg.php, и включили их в раздел System сопроводительного диска, чтобы гарантировать Вам их получение.
Итак, начните с распаковки соответствующего tar-архива (либо 32‑, либо 64‑разрядной версии), и переместите файлы sis671_drv.la и sis671_drv.la в каталог /usr/lib/xorg/modules/drivers. Если у Вас есть файл /etc/X11/xorg.conf, откройте его для редактирования от имени root и добавьте такую строку в раздел Device:
Driver “sis671”
Если у Вас нет файла xorg.conf, создайте его в своем любимом редакторе и добавьте в него следующие строки:
Section “Device” Identifier “SiS 671 Video Device” Driver “sis671” EndSection
Это заставит X перейти на только что установленный Вами драйвер, оставив автоматически определенные настройки для всего остального. Если после перезагрузки картинка на экране будет искажена, может потребоваться исключить загрузку модуля кадрового буфера [framebuffer module], так как он может конфликтовать с драйвером SiS. Это делается следующими командами, данными в терминале:
echo blacklist vga16fb | sudo tee/etc/modprobe.d/blacklist-vga16fb.conf sudo update-initramfs -u ‘all’
Вновь перезагрузитесь, и на сей раз все должно быть хорошо. Учтите, что здесь мы использовали команду tee, потому что стандартное перенаправление оболочки работает не так, как Вы могли бы ожидать от команды, используемой с sudo.МС
9 Небольшой web-сервер
В Дома у меня есть небольшой сервер, который, помимо прочего, служит и сервером MythTV. Мне нужно запускать ряд web-приложений на PHP, например, MythWeb и PHPMyAdmin, и тут требуется Apache. Может, это и неплохой web-сервер, но он явно превосходит мои потребности. Нет ли web-сервера полегче?
Пол Томпсон [Paul Thompson]
О Хотя Apache – флагман среди серверов Open Source, он тяжеловесен, и это отнюдь не единственный вариант. Облегченные серверы выручают не только небольшие сети: их применяют и YouTube, и Wikipedia.
Хороший выбор для Вас – сервер Cherokee: он относительно легковесен и снабжен инструментарием настройки с графическим интерфейсом. Для автономного сервера [headless server] такой интерфейс может показаться странным, но это – web-сервер, и интерфейс на базе браузера является хорошей идеей. Установите Cherokee с репозиториев Вашего дистрибутива, затем в терминале скомандуйте cherokee-admin – от имени root или через команду sudo. Выведется URL (http://localhost:9090), имя пользователя и одноразовый пароль для регистрации. Но таким способом можно подключаться только с одного компьютера. Чтобы программа cherokee-admin прослушивала всех сетевые интерфейсы, добавьте опцию -b, или можно добавить сетевой адрес одного из интерфейсов, если Ваш сервер имеет несколько сетевых адаптеров, например:
sudo cherokee-admin -b 192.168.1.2
Использование опции -b позволяет устанавливать соединение откуда угодно, поэтому убедитесь, что Ваш маршрутизатор не перенаправляет порт 9090 на сервер. Домашняя страница настройки позволяет останавливать и запускать сервер, отображает информацию о нем и предоставляет ссылки на техническую поддержку.
Настройки по умолчанию хороши для статических сайтов, обслуживаемых из домена по умолчанию, но нужные Вам приложения PHP по умолчанию не активированы. Поэтому перейдите на вкладку Behaviour в разделе vServers и щелкните по опции Rule Management, нажмите кнопку со значком + в верхней части левой панели, щелкните по опции Languages, выберите PHP и нажмите кнопку Add. Если Вам предложат ввести путь к корневому документу [Document Root path], оставьте это поле пустым, приняв настройку сервера по умолчанию. Вы увидите страницу с настройками – в основном их можно оставить по умолчанию. Нажмите кнопку Save, перезапустите сервер, и сможете загружать страницы PHP.
Настройка прочих аспектов Cherokee тоже проста. Например, для установки виртуального сервера для обслуживания из другого каталога, если Вы подключаетесь с другим именем хоста, перейдите в раздел vServers и щелкните по кнопке + над списком Virtual Servers, или выберите опцию default и нажмите кнопку Clone справа от кнопки +. Создастся копия набора настроек по умолчанию, где можно изменить необходимые параметры вручную. Обычно это параметры ServerID и Document root на вкладке Basics и вкладка HostMatch, где указывается, какие имена хостов будут использовать этот виртуальный сервер. Для одиночного имени хоста можно установить значение Server ID, без всякой дополнительной настройки. Альтернатива – указать регулярное выражение. Раз это не конкретное имя, example.com будет соответствовать и www.example.com, и foo.example.com. ГМ
Шаг за шагом: Установка Cherokee
- 1 Запуск admin
- Из терминала запустите команду cherokee-admin и обратите внимание на одноразовый пароль, которым она снабжает вас для регистрации.
- 2 Регистрация в admin
- Это окно вы увидите при регистрации на сервере через cherokee-admin; значки в верху экрана соответствуют основным областям конфигурации.
- 3 Это работает?
- Запустите сервер и подключитесь к нему, не используя порт 9090, и вы увидите это. Видите то же самое и после загрузки информационного наполнения? Проверьте настройки.
- 4 Активизация PHP
- Cherokee по умолчанию не обрабатывает сайты, использующие PHP, но активизировать эту опцию или .NET достаточно просто через vServers > Rule Management.
- 5 Виртуальные серверы
- Настройка виртуального сервера столь же проста. Нажмите кнопку с +, измените пару настроек, а для всех прочих параметров сгодятся значения по умолчанию.
- 6 Это работает!
- Как видите, Cherokee обслуживает PHPMyAdmin во всей красе, и все, что для этого понадобилось – лишь несколько щелчков мышью.
Часто задаваемые вопросы. Шифрование данных
- Зачем мне шифровать мои файлы? Мне нечего скрывать.
- Ой ли? Вы не храните на своем компьютере номера счетов? И ни одно из ваших почтовых сообщений не содержит конфиденциальной информации – например, паролей или подтверждений транзакций?
- Хм, пожалуй. Но как мне тогда их обезопасить?
- Можно зашифровать отдельные файлы, например, при посредстве GnuPG. Содержимое этих файлов будет недоступным, пока вы не расшифруете его с помощью парольной фразы. GnuPG – это GPL-аналог Pretty Good Privacy, программы, которая фактически является стандартом в шифровании файлов.
- Что-то много мороки. Нет ли способа попроще?
- Есть: зашифрованная файловая система. Она автоматически шифрует все данные, которые вы записываете на нее, и расшифровывает их при чтении. Надо только задать пароль при монтировании файловой системы. Если ваш ноутбук потеряется или его украдут, никто не прочтет содержимое зашифрованной файловой системы – обычно это бывает /home.
- Почему только /home, разве нельзя зашифровать все?
- Нет, потому что тогда вы не сможете загрузить ПО, необходимое для монтирования зашифрованного раздела, хотя, предприняв определенные усилия, вы можете зашифровать все, кроме /boot. Впрочем, в шифровании системных каталогов особого смысла нет.
- Существуют ли другие области, о которых следует позаботиться?
- Хорошей идеей будет шифрование /tmp, если только вы не пользуетесь tmpfs, поскольку при этом содержимое данного каталога все равно теряется при отключении питания. То же касается и /var/tmp и swap.
- Какие варианты у меня есть?
- Их несколько. В ядро Linux уже включен модуль dm-crypt. Его можно применять для создания полностью зашифрованных файловых систем. Существует ряд программ, предназначенных для подключения таких файловых систем и управления ими, например, LUKS (Linux Unified Key Setup). Альтернатива – ecryptfs, шифрующая отдельные файлы, их имена и содержимое. Этот подход чуть менее надежен, потому что размеры файлов и права доступа к ним по-прежнему остаются видимыми, но зато он удобнее.
- А что с резервным копированием?
- Если вы зашифруете всю файловую систему, потребуется примонтировать ее, чтобы получить доступ к файлам с целью их резервного копирования. Если вы хотите защитить резервные копии, пользуйтесь GPG. Если вы пользуетесь encfs, то сама файловая система является стандартной, но файлы, которые в ней содержатся, выглядят как мусор. Можно применять любую программу резервного копирования для сохранения копий этих файлов, и они будут уже зашифрованы. Это может быть полезно, если вы хотите хранить резервные копии на удаленном сервере.
- Спасет ли это меня, если я потеряю ноутбук?
- Нет, если ноутбук оставлен в ждущем режиме с примонтированной файловой системой. Encfs имеет опцию автоматического отмонтирования файловой системы, если она определенное время не используется, но только для случая, когда не открыт ни один файл. Если вы применяете dm-crypt для шифрования целых разделов, таких как /home, необходимо выйти из системы и отмонтировать /home перед тем, как переводить компьютер в режим ожидания. У вас должна быть возможность сделать это с помощью скриптов, используемых вашей системой перевода компьютера в ждущий режим.
Краткая справка про… MD5
Если вы загружали ISO-образы различных дистрибутивов, то могли видеть по соседству с ISO-файлами файлы с именами типа cooldistro1.0.iso.md5, и, возможно, дивились: зачем они? А это суммы MD5 – 128-битный криптографический хэш содержимого файла. Один и тот же файл всегда генерирует одну и ту же сумму, но стоит изменить в нем всего один бит, и сумма станет совершенно иной.
MD5 был первоначально разработан для обеспечения безопасности, но сейчас так же часто используется для проверки случайного повреждения во время передачи. При загрузке ISO-образа, скачайте заодно и файл MD5. Не был ли файл поврежден, проверит команда
md5sum cooldistro1.0.iso
Она должна вернуть ту же строку шестнадцатеричных символов, что хранится в cooldistro1.0.iso.md5. Конечно, ручное сличение 128-битных шестнадцатеричных чисел друг с другом – не самое приятное занятие, особенно если файлов скачано много; пусть за нас это сделает машина:
md5sum --check cooldistro1.0.iso.md5
Эта команда покажет, совпадают контрольные суммы или нет. MD5-файл может содержать контрольные суммы нескольких файлов. Например, исходные тексты Gnome состоят из множества файлов, а их суммы MD5 записаны в одном. По принятому соглашению, этот файл называется MD5SUMS. Можно загрузить все необходимые вам файлы и проверить их за один раз:
md5sum -c MD5SUMS
Кроме того, можно создать файл MD5SUMS:
ms5sum *.iso >MD5SUMS
SHA1-файлы работают по аналогичному принципу, но с несколько более высоким уровнем безопасности. Принцип тот же, как и синтаксис, но используются программы sha1sum и sha256sum.
Терминалы и суперпользователи
Мы часто предлагаем решение в виде команд, вводимых в терминале. Хотя обычно то же самое можно выполнить и через графические инструменты, входящие в состав дистрибутива, отличия между этими инструментами означают, что такие решения будут узко специфичными. Команды терминала гораздо более гибкие и работают во всех дистрибутивах.
Команды настройки системы часто должны запускаться от имени суперпользователя (superuser или root). В зависимости от вашего дистрибутива, есть два способа сделать это. Многие дистрибутивы – в частности, Ubuntu и его производные – требуют предварять такие команды префиксом sudo. После этого пользователю предлагается ввести пароль, и система выдает ему полномочия root, действующие на время выполнения команды. Другие дистрибутивы используют префикс su, применение которого требует ввода пароля root и дает полные права root до тех пор, пока пользователь не введет команду logout или exit. Если ваш дистрибутив использует su, выполните эту команду один раз, и потом сможете выполнять любую команду, не предваряя ее префиксом sudo.
К сожалению авторы дают неверное сильноупрощенное объяснение по командам su и sudo. Это вовсе не префиксы, а две отдельные команды совершенно различного назначения присутвующие в ЛЮБОМ (да да, и в Ubuntu тоже есть обе) дистрибутиве. Назначение команды su user запуск оболочки от имени указанного пользователя, и если он опущен то это root. Назначение же команды sudo команда это выполнение команды от имени другого пользователя (опять же если опущено то это тот пользователь, который определен для этой команды в файле /etc/sudoers. Кажется что разницы нет, однако она есть и существенная, а подробности читайте в man каждой из команд.