LXF120:Ответы
|
|
|
Содержание |
Ответы
- Есть вопрос по Open Source? Пишите нам по адресу answers@linuxformat.ru!
1 Верните мои записи!
В Раньше у меня на /dev/sda1 был установлен Ubuntu 8.10, а в /home на /dev/sda2 было четыре учетных записи пользователей. Затем я решил скачать Ubuntu 9.04 и заменить 8.10 на /dev/sda1. Когда установка закончилась, я хотел восстановить три другие учетные записи, но Ubuntu сообщил мне, что они (их домашние папки) уже существуют, и их нельзя добавить снова. Не подскажете ли, как восстановить эти три учетные записи?
Кай Сиум [Cae Sium]
О Тут проявился норов инструмента управления пользователями Ubuntu: он отказывается создавать учетную запись, если домашняя директория с таким именем уже существует. Можно переименовать старую директорию, пересоздать пользователя, изменить идентификаторы пользователя и группы (UID и GID), удалить директорию нового пользователя, а затем вернуть прежнюю на место – но при использовании якобы «облегчающего труд» графического интерфейса это адски много работы, причем придется повторять все тот же нудный процесс для каждого пользователя.
Гораздо легче сделать это с помощью инструмента командной строки useradd, которыйне создает пользовательскую директорию по умолчанию. Во-первых, найдите старые UID и GID Ваших пользователей – это можно сделать с помощью ls. Попробуйте выполнить следующее:
sudo ls -l /home
В результате должно получиться нечто вроде
drwxr-xr-x 2 1001 1001 4096 2009-04-16 11:07 fred drwxr-xr-x 2 1002 1002 4096 2009-04-16 15:23 jim drwxr-xr-x 30 nelz nelz 4096 2009-04-16 11:02 nelz
Третий и четвертый параметры содержат UID и GID. Вы заметите, что для пользователя с именем nelz вывод покажет имена пользователя и группы, а для двух других – пользователей, которые еще не созданы – числовые значения, приписанные им. Теперь пересоздайте этих пользователей командой useradd – например, так:
sudo useradd -- home /home/fred -- uid 1001 -- user-group fred sudo passwd fred
Создастся пользователь fred с домашней директорией /home/fred и UID 1001, а затем будет запрошен пароль для него. Ключ --user-group создаст индивидуальную группу для этого пользователя, согласно правилу Ubuntu по умолчанию. Если Вы хотите, чтобы все пользователи являлись членами одной и той же группы (например, users), используйте команду
sudo useradd -- home /home/fred -- uid 1001 -- gid users fred
Повторите это для каждой учетной записи, а затем проверьте с помощью ls -l, что все домашние директории принадлежат правильным группам и пользователям. Если это не так, Вы можете исправить ошибку:
chown -R fred: ~fred
Хотя этот процесс решит Вашу текущую проблему, нет гарантии, что такое же не произойдет при очередном обновлении. Но это не повод отказываться от переходов на новые версии дистрибутива: лучше сделать копию /etc/passwd. Тогда при следующем обновлении Вы можете просто скопировать соответствующие строки из этого файла на свои места в новой установке, хотя пароли задать все равно придется. Альтернативный инструмент для выполнения этой задачи – утилита Webmin. Ее нет в стандартных репозиториях Ubuntu, но Deb-пакет можно загрузить и установить с http://www.webmin.com/download.html. Затем откройте в браузере https://localhost:10000 и примите сертификат безопасности (это Ваша собственная программа, работающая локально, так что сертификат действительный, что бы ни говорил браузер); и, наконец перейдите в Система> Пользователи и группы, для настройки Ваших пользователей. ПХ
2 Без паники!
В Мой монитор Samsung 2343BWX не работает с Ubuntu 8.10. При загрузке с Live CD процесс останавливается, и я получаю пустой экран, а два из трех индикаторов в верхней части клавиатуры начинают мигать. Далее ничего не происходит. Мигает тот индикатор, что с буквой А, и тот, что с символом стрелки. Сперва я думал, что проблема в видеокарте, и купил Nvidia GeForce 6200, но смена адаптера не помогла. Потом я попытался проверить монитор на других моих компьютерах (на них стоит OpenSUSE 11.1, Mandriva 2009 и Fedora 10), но там он работал. Этот монитор также работает при загрузке Ubuntu 8.04. Как вы думаете, в чем тут проблема?
Джим Беккер [Jim Becker]
О Весьма маловероятно, что проблема именно с монитором, Джим. Можно предположить, что Вы увидите те же симптомы, даже если замените его. Ключ к решению – мигание светодиодов Caps Lock и Scroll Lock клавиатуры, указывающее на «панику ядра» [kernel panic]. Такое бывает, когда ядро сталкивается с ошибкой, которую ему не одолеть – это похоже на «голубой экран смерти», присущий некой проприетарной ОС, но обычно более информативно. А именно: встретив неразрешимую ошибку, ядро печатает отладочную информацию на экран и останавливает работу. Мигающие светодиоды на клавиатуре являются дополнительным индикатором в случае, когда нельзя увидеть экранный вывод, как в Вашей ситуации.
Сообщения об ошибке не видно потому, что Ubuntu, как и большинство других дистрибутивов, скрывает его за заставкой. Для удаления заставки и просмотра сообщения об ошибке, запустите компьютер с CD и нажмите F6, чтобы в меню появилась строка с загрузочными параметрами. Уберите из нее слова quiet и splash и нажмите Enter для продолжения загрузки. Ваш компьютер будет по-прежнему виснуть из-за паники ядра, но на этот раз Вы увидите, что оно имеет Вам сообщить. Вставьте эту информацию в любимую поисковую систему. Если ошибка не связана с каким-нибудь не в меру загадочным оборудованием, кто-нибудь, скорее всего, уже имел дело с этой проблемой и опубликовал ее решение.
Хотя, прежде чем впрягать поисковую систему, стоит попробовать несколько стандартных вещей. Во-первых, отключите все лишние USB-устройства. Вполне очевидно, что без клавиатуры и мыши не обойтись, но любые сканеры, принтеры, аудиокарты и внешние устройства хранения данных могут отдохнуть. Это не означает, что Вы не сможете пользоваться ими: просто проблемы ядра на Live CD могли быть из-за них. Установив систему, Вы сможете опять подключить свои устройства.
Еще одна рядовая проблема – неверная реализация APIC (расширенный программируемый контроллер прерываний) на Вашей материнской плате. Видите ли, некоторые изготовители охотно работают по минимуму, обеспечивая лишь работу в Windows, а не выполняя требования спецификации. Этот вопрос решается путем отключения поддержки APIC ядром. Нажмите F6, чтобы получить загрузочные параметры, как описано ранее, удалите quiet и splash, чтобы видеть происходящее, и замените их на noapic. Если это сработает, можно добавить опцию noapic в загрузочное меню во время установки, чтобы использовать ее всегда, но заодно проверьте, нет ли обновления BIOS для Вашей материнской платы. Даже у новых материнских плат бывают обновления, появившиеся за время их путешествия к прилавку, и они нередко исправляют проблемы с APIC. НБ
3 Вдвойне subversивно
В С интересом прочел вашу недавнюю статью про Subversion (LXF118). У меня есть старая машина с Ubuntu 8.04 Server, а на ней рабочая установка Subversion. В настоящее время она имеет один репозиторий в /svn, но я затеял эксперимент с наличием двух отдельных репозиториев с общей родительской директорией.
Я создал репозитории с помощью svnadmin, и они вроде отлично работают, если я использую svn checkout file:///полный/путь/до/repo/, но если я использую svn:///относительный/путь/к/checkout, то я должен сообщать svnserve, где находится корень двух репозиториев. Поискав в Интернете, я обнаружил, что могу передать корень в svnserve как параметр — а как это сделать при автоматическом запуске svnserve при загрузке системы?
Энди Мьюз [Andy Muse]
О Оба репозитория находятся в одной и той же директории? Тогда используйте c svnserve опцию --root и включите имена репозиториев в запрос. Например, если Вы используете /полный/путь/к/repo1 и /полный/путь/к/repo2, запустите svnserve так:
svnserve ----root /полный/путь/к
Затем обращайтесь к ним как svn://repo1/путь/к/файлу или svn://repo2/путь/к/другому/файлу.
Альтернатива – запуск отдельного сервера для каждого репозитория, на разных портах или именах хостов, чтобы их не путать. Например, команды
svnserve ----daemon ----root /полный/путь/к/repo1 svnserve ----daemon listen-port=3691 ----root /полный/путь/к/repo2
должны запустить один сервер на стандартном порте (3690), а другой на 3691. Запрос к второму серверу будет с использованием URI вида svn://hostname:3691/путь/к/файлу. Это работает, но хлопотно для пользователей второго репозитория, так как они каждый раз должны указывать номер порта. Вы можете использовать различные имена хостов, отредактировав /etc/hosts и сделав второе имя псевдонимом (алиасом) к первому. Строка в /etc/hosts выглядит так:
IP-адрес имя_хоста псевдонимы
Здесь можно указать любое число псевдонимов (разделяя их пробелами). Добавьте псевдоним для второго репозитория, а затем проделайте это на других компьютерах в сети (если Вы используете локальный DNS-сервер, достаточно внести изменения лишь на нем). Сделав это, можно запустить два экземпляра svnserve с помощью
svnserve ----daemon ----listen-host=myhost ----root /полный/путь/к/repo1 svnserve ----daemon ----listen-host=newhost ----root /полный/путь/к/repo2
Теперь Вы можете использовать соответствующие имена хостов для каждого репозитория, забыв о мороке с номерами портов. Также учтите, что Ubuntu не содержит скрипта инициализации для svnserve, поэтому Вы должны поместить эти команды в /etc/rc.local перед последней строкой, содержащей exit 0. НБ
4 Ретранслятор LIRC
В Знаете ли вы о существовании ПО, способного получать сигнал LIRC, а затем зацикливать его обратно для повторной передачи? В противном случае, по силам ли мне написать нечто подобное самостоятельно?
Я хочу принимать сигнал LIRC (с пульта) и передавать его снова (через передатчик). У меня уже настроен LIRC с возможностями передачи и приема, но мне нужен способ соединения приемника и передатчика.
Крис Вайк [Chris Wike]
О Исходя из озвученных запросов, Вам нужно использовать irexec, эта программа умеет выполнять любые требуемые команды. Сюда входит и использование irsend для отправки команд через инфракрасный передатчик. Команды, выполняющиеся для каждой нажатой кнопки, определены в Вашем файле .lircrc и выглядят примерно так:
begin prog = irexec button = Record repeat = 3 config = irsend SEND_ONCE remote CODE end
Поле prog должно быть установлено в irexec, а button = это идентификатор кнопки, на нажатие которой нужно реагировать. Чтобы узнать идентификатор каждой конкретной кнопки на Вашем пульте, запустите irw в терминале, нажмите несколько клавиш и просмотрите вывод для каждой из них. Далее, опция repeat = предотвращает многократный вызов prog, если задержаться на кнопке дольше по времени, чем продолжительность одной передачи. Значение, равное трем, означает, что три последовательных сигнала будут рассматриваться как единое целое. И, наконец, config содержит команду, которую Вы собираетесь запускать – в нашем случае это irsend, но тут также могло быть что-нибудь другое.
Чтобы все это заработало, Вы должны иметь запущенным irexec. При старте из терминала он будет по умолчанию загружать свои настройки из ~/.lircrc. Чтобы использовать другой конфигурационный файл, передайте его в командной строке. Кроме того, если Вы запускаете irexec при старте системы, он не сможет определить Вашу домашнюю директорию, поэтому необходимо указать путь к файлу конфигурации. Вы также должны использовать опцию --daemon для запуска программы в фоновом режиме. Таким образом, полная команда для запуска будет иметь вид
irexec -- daemon /etc/lircrc
если Вы храните настройки в /etc/lircrc. Поскольку в данном случае irexec запускается не из оболочки ользователя, он не будет иметь доступа к Вашему полному окружению, и мы рекомендуем использовать абсолютный путь для любой команды, которую Вы указываете в файле lircrc. ГМ
5 Ликвидация как класс
В Недавно я прочитал в Which? статью о стирании жестких дисков: http://www.theregister.co.uk/2009/01/08/hard_drive_hammer_destruction. Понимаю, что совет Which? разбивать старые диски молотком — типа юмор; а что бы порекомендовал Linux Format? Я обычно запускал Darik’s Boot And Nuke (DBAN), но недавно начал использовать для зачистки винчестера dd. В информации Great Zero Challengе - на http://16systems.com/zero.php четко говорится, что это гарантия практической невозможности восстановления данных.
Узнав это, я тут же и перешелна dd, а потом две недели гонял программу восстановления диска Ontrack и не извлек ни одного байта полезной информации. Однако не считаете ли вы, что для ввода лучше использовать /dev/urandom вместо /dev/zero?
Дэмиан Ланни [Damian Lunny]
О Это правда, что при удалении файлов их содержимое не исчезает, и журнал Which? также прав, заявляя, что единственный способ гарантировать невозможность восстановления данных заключается в разрушении диска. В конце концов, TestDisk может легко вернуть содержимое удаленных файлов, и даже перезапись нулями не считается достаточной защитой от аналитического оборудования спецслужб. Тем не менее, разбивать жесткий диск молотком – не самая хорошая идея, при всем удовольствии отвести душу. Даже если Вы избежите осколочного ранения, уничтожение диска таким способом неразумно с точки зрения экологии.
В конечном итоге, насколько далеко следует зайти, определяется ценностью Ваших данных. Вряд ли кто станет тратить свое время и разоряться на дорогое спецоборудование, чтобы восстановить картину Ваших отпускных эскапад (независимо от их свойств). А вот конфиденциальная информация компании – дело другое; впрочем, даже и эти сведения все-таки не всегда оправдывают физического истребления диска. Помните и про такой аспект: держа у себя чужие персональные данные – будь то сотрудники, несовершеннолетние, иждивенцы или любые другие лица – Вы несете ответственность за обеспечение сохранности этой информации в соответствии с Законом о защите данных [в России – Федеральный закон «Об информации, информационных технологиях и о защите информации», – прим. пер.].
Вы упомянули Darik’s Boot And Nuke, и это отличный инструмент для полного и тщательного удаления всех данных с жесткого диска – гораздо радикальнее, чем простое обнуление. DBAN, конечно, проработает дольше, но это лишь свидетельство его аккуратности. Вдобавок Вы завоюете веру в истинность удаления Вами данных у тех людей, которые разбираются в этом вопросе. Так что, по сути, все зависит от того, насколько важен для Вас этот процесс и сколько времени Вы готовы на него потратить. Обнуление гарантирует добрых 99 % неудач при попытках восстановить данные – спросите себя: может, оно и достаточно?
Если Вы храните конфиденциальные данные, первым делом рассмотрите вариант шифрования файловой системы. Он не только защитит Ваши данные в случае кражи или потери компьютера (воруют и ноутбуки, и настольные машины, так что последние тоже не мешает шифровать), но и добавит лишний рубеж защиты от восстановления после удаления – благодаря тому факту, что любой вариант восстановления предоставит данные только в зашифрованном виде, а чтобы заполучить настоящие, придется еще попотеть. Эффективная защита себя и других – всего лишь обеспечить, чтобы затраты на получение доступа к информации обходились чуть дороже самой информации; в получении 100 % уверенности через разрушение диска крайности нет, если только Вы не сотрудник службы безопасности или член криминального синдиката. МС
6 Портативные пароли
В Обдумываю идею сохранения файла с паролями и другой ценной информацией на USB-брелке, зашифрованном с помощью GnuPG, чтобы иметь возможность подключить его к любому ПК, а затем расшифровать и прочитать файл. Я хотел бы поставить на брелок и сам GPG, чтобы я всегда мог это делать без установки GPG на компьютер: тогда на чужой машине не оставалось бы следов моих действий. Как это сделать? И вообще, возможно ли такое?
Хью Ченг [Huw Cheng]
О Вам придется записать на USB-брелок и свой личный ключ, поэтому единственным средством защиты Ваших данных будет пароль – один пароль, и ничего больше. Приемлем ли для Вас такой риск, решать только Вам – но если Вы решили идти этим путем, заведите пароль уникальный и безопасный. Идея Ваша не невозможна, но нужно собрать статически скомпонованный бинарник GPG со всеми требуемыми библиотекамив одном файле.
Скачайте исходные коды GnuPG с http://www.gnupg.org, распакуйте их и перейдите (cd) в созданную директорию. После этого запустите следующие команды:
export CFLAGS=”-static” ./configure -- enable-static make
Для сборки из исходных кодов Вам понадобится иметь установленными компилятор (GCC) и пакет Autotools; а если у Вас Ubuntu, придется установить build-essentials. Если на этапе ./configure всплывают ошибки якобы из-за отсутствия программ и библиотек, но Вы точно знаете, что они есть, проверьте в своем менеджере пакетов наличие версии -dev или -devel соответствующего пакета. Эти версии содержат заголовочные файлы, не нужные для работы с ПО, но необходимые, когда Вы собираете другое приложение, которое его использует. Весьма вероятно, что наличие заголовочных файлов решит проблему.
Запускать в конце make install не обязательно, так как Вы не собираетесь устанавливать эту версию. Вместо этого Ваша новая программа GPG2 будет в директории g10. Проверьте, что она скомпонована статически, командой
ldd g10/gpg2
которая должна подтвердить, что это не динамический исполняемый файл. Теперь можете скопировать его на свой USB-брелок, но еще раз советуем сперва подобрать «сильную» парольную фразу для Вашего ключа.
Поскольку такое использование GnuPG означает размещение личных данных на легко теряемом
и подверженном краже устройстве, будет также правильно создать для него отдельную пару ключей. Или попробуйте альтернативу: например,
Ccrypt (http://ccrypt.sourceforge.net). Он использует 256‑битное шифрование AES, поэтому достаточно безопасен, а его библиотеки найдутся
на любой машине. Он содержит команды ccencrypt и ccdecrypt, которые совершают действия, отраженные в их названии, вместе с ccat, отображающей содержимое зашифрованного файла без записи расшифрованной версии на диск. Так, Вы можете
вытащить только Ваши банковские пароли с помощью команды
ccat passwords.cpt | grep mybank
не оставляя следов незашифрованной информации на устройстве, а главное – на компьютере, к которому оно подключено. НБ