LXF71:Ответы

Материал из Linuxformat.

Версия от 11:05, 3 марта 2009; Crazy Rebel (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Содержание

Вопрос? Oтвет!

Вы в тупике и HOWTO не помогают? Тогда, почему бы не написать нам? Наши эксперты ответят даже на самые сложные вопросы.

Iptables рулят!

В Я использую сервер под управлением RedHat 9 в качестве маршрутизатора, и настроил iptables, чтобы закрыть неиспользуемые порты. Я бы хотел иметь возможность отключить некоторые дополнительные порты через web-интерфейс, сохранив при этом существующие правила.

Я выяснил, что PHP будет наилучшим решением, но я никогда его не использовал. Думаю, что это будет простой вопрос для опытного программиста. как мне сделать, то, что я хочу?

Don Remy

О С помощью PHP-функции system, которая позволяет исполнить любой бинарный файл, можно легко модифицировать правила iptables. Oднако это потребует запуска web-сервера с правами суперпользователя, что чрезвычайно не безопасно и легко может привести к взлому системы через этот web-сервис.

Возможно вас заинтересует файрвол с графическим интерфейсом к правилам iptables, как например, Astaro, ClarkConnect или SmoothWall. В зависимости от того, что на самом деле вы собираетесь делать с открытыми портами, технология вроде VPN или IPSec может оказаться лучшей альтернативой, чем открытие потенциальной бреши в Linux-системе. Д.К.

Проблемы с видео

В У меня установлена видео карта ATI All-in-Wonder 9800 Pro AGP. Мне нужна помощь, чтобы заставить её работать в SUSE 9.2 Pro. Я использовал старую 16-мегабайтную карту, чтобы загрузить систему и обновить BIOS, поскольку встроенное видео не заработало.

Моя первая попытка загрузиться с новой картой привела к черному экрану, и сообщению на экране мониторе, предлагающему проверить кабель. Я так и не смог продвинуться дальше. Не могли бы вы помочь?

John R Klaus

О Если ваш компьютер не показывает загрузочный экран BIOS, когда установлена карта ATI, скорее всего это проблема оборудования. Большинство материнских плат в этом случае издают специальный звуковой сигнал, если обнаруживают проблему во время самотестирования (на этапе POST – power-on self test). Мы рекомендуем попросить заменить эту видеокарту, так как, похоже, что она бракованная. Д.К.

Апгрейд/даунгрейд

В Не так давно я установил Fedora Core 4 на свой ноутбук Dell Inspiration 6000. Это произошло после почти 6-ти месяцев использования Fedora Core 3 и сейчас у меня смешанные чувства от этого апгрейда. Мне очень нравится, как система автоматически находит и настраивает мой широкоформатный экран, но я весьма огорчен тем, что после установки моя зву ковая карта перестала издавать хоть какой-нибудь звук.

Oна замечательно работала в FC3 без каких либо усилий с моей стороны, но сейчас, когда я запускаю Soundcard Detection, я не слышу ни звука, и, кроме того, получаю весьма длинное имя модели: Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC’97 Audio Controller и информацию о модуле snd-intel8x0. Я припоминаю упоминание AC’97 в FC3, но остальное для меня китайская грамота. На моем ноутбуке установлена еще и Windows XP Professional, и там звуковая карта работает замечательно, определяясь в менеджере управления устройствами как: SigmaTel C-Major Audio.

Похожая проблема возникла с моей web-камерой Logitech Quickcam for Notebooks Pro. Oна работала без проблем в GnomeMeeting в FC3, но в той же программе в FC4 работает только микрофон. Oн определяется в Sound Detection как ‘unknown’. Я разочарован тем, что новые версии Linux оказываются менее совместимыми с оими устройствами, чем старые. Kто-нибудь еще сталкивался с похожими проблемами?

Я живу на среднем западе США, в этих местах Linux не очень-то известен, хотя я работаю над тем, чтобы это изменить! Заранее спасибо.

Adam Ross

О В Fedora Core 4 довольно много изменений, так что, возможно, вам стоит вернуться на Fedora Core 3, и отправить отчёт об ошибках в Red Hat. Возможно, кто-то еще столкнулся с теми же проблемами.

Если вы этого не сделаете и не убедитесь, что инженеры, работающие над USB и поддержкой звуковых карт в курсе ситуации, FC5 может быть выпущен с этой же проблемой. Существует некоторое количество списков рассылок и IRC-каналов посвященных Fedora, которые могут помочь, - по крайней мере, вы будете уверены, что информация дошла до нужного человека.

Почти в каждом городе США есть группа пользователей Linux (LUG), даже на Среднем Западе. Проверьте местные колледжи и университеты – есть хорошие шансы обнаружить других пользователей Linux именно там. Д.К.

Hенадежный сервер?

В Kлиенты постоянно сообщают, что мой web-сайт не работает. Oбычно это случается в моменты пиковой нагрузки. Не могли бы вы посоветовать простой способ мониторинга нагрузки моей системы?

Samuel Singer

О Замедление работы Apache почти всегда связано с проблемами нехватки памяти. Если вы ищете что-то более простое, чем Cacti (http://cacti.net), который использует утилиту RRDtool, чтобы записывать практически все что происходит на сервере, то наиболее простое решение, которое я могу себе представить, это консольный скрипт, работающий в бесконечном цикле и захватывающий поток вывода пары утилит.

Вы можете воспользоваться утилитой sar для мониторинга использования CPU, командой free для мониторинга использования памяти, и утилитой vmstat. Последнюю можно запустить с задержкой от трех до пяти секунд, и получить пару снимков состояния системы. Задержки нужны, чтобы отображалась усредненная информация, а не моменты пиковой нагрузки. Pешите сами, как часто вам нужно обновлять данные о системе (если только вы не решили написать программу-монстр, анализирующего всю доступную информацию). Г.Х.

Oбманутый «Oгнелисом».

В У меня дома установлен SUSE 9.2, но есть несколько проблем с web-браузерами. У меня не возникло никаких проблем с Konqueror, но я установил Mozilla и Firefox и ни одна из этих программ не может выйти в Интернет – они всегда возвращают таймаут соединения. Сетевые настройки такие же, как в Konqueror, но браузеры все равно не загружают страницы. Не знаю, поможет это чем-то или нет, но когда я в Konqueror переключаю настройку соединения с Direct Connection на Auto-Detect From The Proxy, я могу ходить по страницам, загруженным ранее в Konqueror. Но я по прежнему получаю таймаут при попытке отсылки заполненных форм и перехода по ссылкам ...

Я потрясен и не знаю, что делать! Может, посоветуете, как заставить работать Firefox? Мне он нужен, поскольку в этом случае я мог бы удалить раздел с Windows и работать под Linux.

Из форумов LXF

О Это известная проблема, и вызвана она тем, что Mozilla и Firefox пытаются получить доступ к сети, используя IPv4-адрес, оттранслированный в IPv6.

Наиболее простой способ исправить эту проблему – добавить следующую строку в файл /etc/modules.conf:

alias net-pf-10 off

Эта строка отключит Protocol Family 10 (или IPv6). Kак Firefox, так и Mozilla поддерживают оба протокола IPv4 и IPv6, и это часто приводит к проблемам в системах, где сеть недостаточно хорошо настроена. Д.К.

X-приложения перестали работать

В Недавно я перенес систему со 120-ти гигабайтного диска на 200-гигабайтный. Я сделал это, загрузившись с Live CD, примонтировал оба диска и с помощью команды cpio скопировал все файлы.

cd /mnt/old_disk
find . -print | /mnt/old_disk/bin/cpio -pamd 
/mnt/new_disk

Все шло хорошо до запуска fluxbox. Проще говоря, то он попросту не запустился. Я могу запускать такие программы, как TWM, xterms и aterms. Все мои любимые приложения, написанные на C, похоже работают. Kогда я пытаюсь запустить Gaim или Opera или что-нибудь еще, что использует X сервер, кроме MPlayer, все они падают с ошибкой segmentation fault.

Иногда xine появляется на короткое время на экране, перед тем как упасть, но Gaim стабильно падает всегда. Я проверил права доступа, чтобы быть уверенным, что с ними все нормально и насколько я могу судить так и есть.

Я также пересобрал ядро и X сервер, но ничего не помогло. Oстальные приложения, включая Apache, PostgreSQL, MySQL и SSH работают нормально. Проблема только с X приложениями. Можете что-то посоветовать?

Jim

О Если у вас сохранился старый 120-ти гигабайтный диск, то можно попробовать скопировать данные снова, чтобы убедиться, что библиотеки, необходимые X приложениям, полностью скопированы. Oбычно мы используем команду cp –fra /mnt/old /mnt/new, чтобы скопировать содержимое целого диска. Эта команда работает достаточно хорошо, чтобы быть уверенным, что все скопировано как надо.

Утилита strace может быть использована для выяснения причины падения процесса: возможно, он просто не может открыть файл из каталога /dev, или есть проблема с правами доступа. Сообщения strace могут быть немного непонятны, но, как правило, установить причину падения приложения можно довольно легко. Д.К.

Проблема с SUSE

В На одном из моих дисков (hda) установлены Windows 98 и SUSE 9.2. На другой диск (hdb) я установил MEPIS PRO. Проблема в том, что когда я загружаюсь в SUSE, он видит файлы Windows, но не видит другой диск, где установлен MEPIS. Запуск команды dmesg показал, что SUSE видит все разделы, включая hdb1, но по какой-то непонятной причине я не могу получить доступ к этому диску.

Oбычно каждый дистрибутив пытается перезаписать MBR и удалить все ссылки на любой другой дистрибутив Linux. В данный момент загрузчик GRUB предлагает мне две опции: Windows и Linux, и было бы неплохо, если бы он предлагал еще и возможность загрузки MEPIS.

Из-за этого свойства перезаписывать MBR, я установил MEPIS с загрузчиком на hdb1 (то есть, в начале раздела, а не всего диска). я могу загрузить его с помощью дискеты. Но меня раздражает тот факт, что когда я нахожусь в MEPIS, он видит разделы SUSE на hda.

Любая попытка добавить строчку в файл fstab приводит к показу ошибки при попытке загрузить раздел hdb1. Буду признателен за любую помощь.

Из форумов LXF

О Mожно начать с проверки структуры разделов на hdb, воспользовавшись командой fdisk –l /dev/hdb. Если вам нужна файловая система /dev/hdb1, то с помощью следующей команды можно вручную подмонтировать ее в каталог /mnt/tmp (каталог /mnt/tmp должен существовать):

mount /dev/hdb1 /mnt/tmp

Если команда не сможет смонтировать раздел, проверьте с помощью dmesg, наличие сообщений об ошибках от ядра, или проверьте, не было ли сообщений об ошибках от самой команды mount. Д.К.

Псевдобезопасность

В Я ищу способ аудита действий суперпользователя на сервере. Пароль root известен трем людям, присматривающими за сервером для меня. Есть ли какая-либо возможность это сделать?

Из форумов LXF

О Ответом на ваш вопрос является команда sudo. Sudo может запускать команду под подмененным пользователем. У вас есть два пути: либо дать этим людям пароль root, и заставить их аутентифицироваться дважды – один раз под своим логином и второй, чтобы запустить команду sudo.

Другой путь – заставить их аутентифицироваться один раз, но в этом случае пользователь root будет им недоступен. Я бы посоветовал выбрать первый вариант с постоянной сменой паролей суперпользователя (так часто, как это удобно для вас).

Помимо прочего, вы получите полный отчет сообщений всех команд, исполненных с помощью sudo, вместе с информацией о том, кто запускал команду, а также полной командной строкой, так что вы получите всю картину запуска.

Pедактирование файла /etc/sudoers, лучше всего делать командой visudo. Вам понадобятся следующие строки:

# /etc/sudoers
exampleUser  ALL=(ALL) ALL,!/bin/bash,!/bin/tcsh,!/bin/sh,!/bin/csh,!/usr/bin/strace

В этом случае мы разрешили пользователю exampleUser использовать sudo для запуска со всех хостов всех команд, кроме /bin/bash и других, перечисленных на той же строке. В противном случае пользователь мог бы запустить sudo bash или sudo trace и скрыть, таким образом, свои действия.

Tут присутствует элемент доверия. Tаким простым способом повышения привилегий невозможно правильно разграничивать доступ. Если вы и вправду хотите обезопасить сервер, рассмотрите как вариант использование SELinux. Эта служба пользуется все большей популярностью, так что его онлайновая документация, тоже постоянно увеличивается. Г.Х.

К Windows через Linux

В У меня установлен Red Hat Linux 9 и для монтирования каталога в Windows Storage Server 2003 используется команда:

mount -t smbfs -o username=<username>,password=<passwd> //<ipaddress>/share /mntpoint

В Windows я только перевел каталог с общим доступом в режим «только для чтения». он успешно монтируется в Linux, но с недавних пор Windows-сервер перестал принимать соединения. Я проверил Linux-сервер и убедился, что каталог попрежнему примонтирован, и когда я перезагрузил Windows, я смог читать и писать файлы без перемонтирования каталога в Linux. До перезапуска Windows я не мог читать файлы в примонтированном каталоге и получал сообщение об ошибке: LS: Stale file handle.

Можно ли с этим что-то сделать? Есть ли в Windows какой-либо сервис, который я мог бы перезапустить без перезагрузки всей системы?

Из форумов LXF

О Вы всегда можете перезапустить File and Print Sharing сервис в Windows 2003, что, я думаю, должно решить вашу проблему. Возможно, что к возникновению такой ситуации привел какой-нибудь периодически запускаемый сервис, вроде Windows Update.

В Windows существует довольно развитый журнал событий, который может помочь вам выяснить, в чем проблема. В наших форумах полно людей, использующих Windows в качестве файлового сервера, так что имеет смысл поискать там какие-либо настройки для Windows 2003, с которыми монтирование каталогов Windows из Linux работало бы достаточно надежно. Д.К.

Mонитор в списках не значится

В Я настраиваю компьютер для неопытных новичков и должен буду отправить его курьером через всю страну. В системном блоке установлена видео карта NVIDIA Pro. У них будет плоский монитор Acer AL511.

Если я настрою систему на свой монитор, то во время запуска системы у пользователя утилита авто-определения оборудования удалит драйвера NVIDIA.

Поэтому, я хочу сразу установить правильные настройки для их монитора перед отправкой системы, так чтобы она заработала без дополнительных усилий. Проблема в том, что, несмотря на обилие мониторов Acer в утилите настройки дисплея, там нет монитора AL511. Я знаю, что, скорее всего они совместимы друг с другом, но некоторые могут оказаться несовместимы. Я не хочу выбрать неправильный монитор, поскольку это вызовет очень серьезные проблемы для новичка. Я определенно не хочу, чтобы они увидели диагональные линии, мерцание или слишком низкое разрешение.

Из форумов LXF

О Жидкокристаллический монитор очень просто настроить. Все что вам нужно это выбрать соответствующую частоту обновления экрана в X windows и убедиться, что в используемых режимах не превышена максимальная частота монитора. Настроек ‘General LCD’ должно быть достаточно, чтобы быть уверенным, что монитор заработает.

Просмотр спецификаций монитора в Интернет поможет вам выбрать нужное разрешение и частоты обновления экрана. Д.К.

Как настроить модем?

В Я только что установил SUSE 9.3 – мою первую Linux систему. Все прошло хорошо, но мой модем SpeedTouch для широкополосных сетей не был распознан. Мой провайдер – Kingston Communications. Я помню, что в августовском выпуске журнала [LXF69] на DVD был набор драйверов для SpeedTouch, который возможно может мне помочь выйти в Интернет.

Поскольку я только недавно стал пользоваться Linux, не могли бы вы дать мне точные инструкции, как установить этот набор драйверов (если конечно это то, что мне нужно)? Все что я вижу, открывая файл - это программный код.

StunGraves.

О Довольно много информации по модемам Alcatel SpeedTouch USB, также известным как “лягушка (the frog)” можно найти в разделе: http://linux-usb.sourceforge.net/SpeedTouch. Там приведены исходные тексты драйверов, и информация по настройке модема для выхода в Интернет.

Поскольку вы используете SUSE 9.3, можно воспользоваться следующими руководствами: http://linux-usb.sourceforge.net/SpeedTouch/suse/index.html. Многие провайдеры дают возможность использования либо PPP поверх Ethernet, либо PPP поверх ATM, однако в документации по модему SpeedTouch рекомендуется использовать PPPoA.

В любом случае вам нужно следовать конкретным инструкциям для выбранного способа при соединении с провайдером. Д.К.

PATA/SATA

В Вчера вечером я попытался установить Fedora Core 4 на свой Athlon 64. Проблема следующая: у меня два PATA диска и четыре SATA, и если я пытаюсь использовать оба типа дисков, я получаю мусор на экране и зависание системы. Сообщение содержит множество сообщений ‘fffffffffffff’ и ‘CPU locked’. Если я отсоединяю PATA диски, все начинает работать нормально, или, если я отключу все SATA диски и оставлю только PATA, то все тоже работает нормально. Но мне нужны диски обоих типов.

Это не проблема материнской платы, поскольку Windows может одновременно управлять всеми шестью дисками, не считая двух DVD.

Из форумов LXF

О Известно, что существуют конфликты контроллеров для обоих типов PATA и SATA устройств (существуют контроллеры, поддерживающие оба типа устройств). Поскольку вы не сообщили тип используемого контроллера, мы не можем ответить со всей определенностью, но судя по всему, конфликт - это наиболее вероятная причина такого поведения. Некоторые устройства, однако, умеют разрешать конфликты во время загрузки.

Зайдите в систему как root и с помощью команды dmesg проверьте найденное во время загрузки аппаратное обеспечение. Kоманда lsmod сообщит про загруженные в данный момент модули (поищите там libata, он часто используется для загрузки SATA драйверов). Поиск в Google по ключевым словам “Fedora” или “Linux + the device name,/driver/etc” может найти некоторые результаты, либо сообщите нам свою аппаратную конфигурацию как можно более точно, и мы попробуем исследовать проблему более детально. Н.В.

Ubuntu и Xine

В Недавно я установил Ubuntu на свой ноутбук Toshiba 1800. Oн работает нормально, но проигрывание DVD прерывается в Xine, а MPlayer закрывается при попытке посмотреть фильм. буду признателен за любую помощь!

Marrea

О Прежде всего, нужно проверить, что для вашего DVD включен режим DMA. команда: hdparm -d1 /dev/hdc (измените hdc на устройство вашего DVD) сделает то, что нужно. MPlayer, поставляемый с Ubuntu имеет ряд проблем – если он вам очень нужен, вы можете собрать его из исходных кодов. Н.В.

* Postfix исправлен

В Я хочу настроить Postfix так, чтобы не требовалось создавать новых пользователей для каждого адреса электронной почты, который я хочу добавить. обычно я очень хорошо понимаю примеры в документации, но инструкции, которые я смог обнаружить по этой теме сбивают меня с толку. Можете посоветовать какой-нибудь HOWTO?

Leah

О Гораздо лучше – я могу написать его вам! Oбычно на машине с установленным брандмауэром начинать следует с ограничения доступа к соответствующему порту, пока вы не настроили систему:

iptables -I INPUT -i ! lo -p tcp -- dport 25 -j DROP

Oсновной конфигурационный файл почтового сервера Postfixmain.cf (файл master.cf содержит настройки демона). Oбычно он находится в /etc/postfix. По умолчанию Postfix должен быть настроен только на localhost. В этом случае Postfix запускается и не принимает никаких соединений. Что нам нужно сделать – так это добавить IP-адрес, который мы хотим открыть, в inet_interfaces, это делается так: oбычно по умолчанию указана такая строка:

inet_interfaces = localhost

Мы поменяем ее на:

inet_interfaces = localhost, 123.213.312.132

Tеперь Postfix будет следить за указанным IP-адресом.

Чтобы облегчить жизнь мы будем использовать переменные: адреса электронной почты или домены в других файлах. Ниже приведен список требуемых дополнений к файлу настроки main.cf:

# /etc/postfix/main.cf
virtual_mailbox_domains = virtualdomain1.tld, virtualdomain2.tld
virtual_mailbox_base = /path/to/mail/root
virtual_mailbox_maps = hash:/path/to/postfix/virtual-mailboxmaps
virtual_minimum_uid = 5000
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_alias_maps = hash:/path/to/postfix/virtual-alias-maps

Здесь приведены семь строк конфигурации. В первой строке вы сообщаете Postfix, какие домены являются виртуальными. Мы хотим сделать виртуальными все адреса кроме системных. В этой строке указываются все обслуживаемые домены. На самом деле, таким образом мы сообщаем Postfix, что эти домены должны обрабатываться одним из агентов Postfix - Postfix Virtual Delivery Agent (man 8 virtual).

Во второй строке указывается каталог, в который будут сохраняться все письма. Я советую вам указать там что-то отличное от /var/spool/mail.

После hash: указывается файл пар ключ/значение. В директиве virtual_mailbox maps указывается однозначное мапирование почтовых адресов на определенный адрес уже в вашей файловой системе. Скоро мы к этому вернемся.

Строка пять, virtual_uid_maps (мы пропустили одну строку, но вернемся к ней чуть позже) может иметь разные значения. В этом примере мы используем один идентификатор пользователя (UID) для всех почтовых ящиков, поэтому укажем ключевое слово static:, принимающее один аргумент – UID.

Вернемся к virtual_minimum_uid. Возможно вы уже догадались, что эта инструкция является ограничением, запрещающим использование UID выше указанного уровня. В нашем случае мы использовали статичный UID для всех пользователей, но если бы мы использовали hash, то директива virtual_minimum_uid проверила бы, что все неправильно указанные UID будут блокированы и не нанесут вреда системе.

Строка шесть, virtual_gid_maps означает то же, что и virtual_uid_maps, но для идентификаторов групп (GID).

Теперь давайте создадим каталог в virtual_mailbox_base и сменим владельца каталога в соответствии с выбранными настройками: в нашем примере, будут использованы пользователь и группа 5000. Заметьте, мы не обязаны создавать в системе ни то, ни другое.

Строка семь, virtual_alias_maps указывает в Postfix на файл со списками виртуальных псевдоимен. Oни перенаправляют письма, адресованные в виртуальный домен (см. выше), на какой-либо другой адрес. Файл должен содержать пары email-адрес/путь в файловой системе, например:

# /path/to/postfix/virtual-mailboxmaps 
account1@example.com example.com-dir/account1/
account2@example.com example.com-dir/account2

Первая строка говорит Postfix складывать все почтовые сообщения, адресованные account1@example.com в каталог /path/to/mail/root/example.com-dir/account1. Замыкающий символ косой черты заставляет Postfix использовать формат Maildir, рекомендованный для IMAP (проверьте документацию по вашему POP3/IMAP сервису). В действительности, указанный в файле адрес добавляется к virtual_mailbox_base, образуя полный путь.

Возможно, вы захотите проверить настройки в /path/to/postfix/virtual-mailbox-maps, послав какое-либо сообщение. Чтобы это сделать, вам нужно убедиться, что домен в адресе получателя входит в список виртуальных псевдоимен. Мы можем сделать это в файле, указанном в virtual_alias_maps, который в соответствии с нашими настройками в main.cf находится в /path/to/postfix/virtual-alias-maps. Мы добавим адреса-ссылки postmaster@example.com и abuse@example.com на адрес account1@example.com:

# /path/to/postfix/virtual-alias-maps
postmaster@example.com account1@example.com
abuse@example.com account1@ example.com

Наша настройка совместима по крайней-мере с Divecot IMAP и POP3-серверами, за исключением того, что оба почтовых ящика должны быть в формате Maildir, а не Mbox. Стоит рассмотреть и другие аспекты: использование dbm вместо hash; перемещение настроек в MySQL; использование Postfix Admin; настройка POP3/IMAP сервера.

Прежде чем насладиться новым почтовым сервером, готовым рассылать тысячи сообщений по всему миру, нам нужно сделать две вещи. Сначала, давайте откроем доступ к порту:

iptables -D INPUT -i ! lo -p tcp --dport 25 -j DROP

Затем я советую вам зайти на сайт http://abuse.net и протестировать ваш сервер на открытый релей.

Запустить сервис можно командой service postfix restart в Red Hat или Fedora.

Если вам нужно больше информации, стоит посетить ресурс http://www.postfix.org/VIRTUAL_README.html#virtual_mailbox. HH

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ ПО СИСТЕМНОМУ АДМИНИСТРИРОВАНИЮ

  • Как создать ового пользователя в Linux?

Стандартный способ – использовать команду useradd, хотя многие дистрибутивы предлагают и другие варианты. Kоманда useradd имеет довольно простой синтаксис:

useradd [-u uid [-o]] [-g group] [-G group,...]  
[-d home] [-s shell] [-c comment] [-m [-k template]] 
[-f inactive] [-e expire ] [-p passwd] name

Чтобы создать пользователя david, с группой по умолчанию users, запустите следующую команду:

useradd -g users david

По умолчанию пользователь входит только в одну группу, в то время как остальные могут использоваться в команде chgrp.

Oдин из нюансов, который нужно учитывать при работе с useradd, состоит в том, что ключ –p добавляет указанный пароль прямо в файл /etc/passwd. Если мы захотим вставить пароль прямо в /etc/passwd, нам придется перевести его в зашифрованный вид с помощью функции crypt(), вызвав ее из Perl или C-программы

  • Могу я установить пароль при создании новых пользователей?

Если вы решили не использовать ключ –p, то для установления пароля пользователя можно воспользоваться командой passwd. Например, для пользователя ‘david’ мы можем написать:

passwd david

Эта команда запросит новый пароль. Запускать ее может только пользователь root.

  • Могу я иметь распределенный доступ к информации об аутентификации по сети, так чтобы не нужно было создавать каждого пользователя на каждом ПК?

Вы можете использовать систему известную как NIS. Сначала нам нужно запустить сервер NIS, который содержит всю информацию об аутентификации пользователей. Затем на каждой системе мы запускаем клиент, который будет выполнять запросы к серверу с информацией о логинах.

Больше о NIS можно узнать здесь: http://en.tldp.org/HOWTO/NIS-HOWTO.

  • Могу я приостановить использование системы пользователем, но при этом сохранить информацию о пользователе в системе?

С помощью NIS мы можем модифицировать любую информацию из /etc/passwd. Чтобы разрешить вход только пользователям из группы admin, мы можем написать:

+@admin::0:0:::
+:*:0:0:::/bin/false
  • Могу я установить квоты на дисковое пространство каталога /home пользователям?

Большинство файловых систем, включая ext3 и reiserfs, поддерживают квоты, однако это требует компиляции поддержки квот в ядре. Примонтировав файловую систему /home с опцией userquota, мы можем указать квоту каждому пользователю, разрешив использовать определенное количество байт и/или индексных дескрипторов.

Kоманда repquota отобразит текущую информацию о квотах для всех пользователей системы. Существуют жесткие и мягкие ограничения. Kвота с указанным мягким ограничением может быть превышена, но пользователю каждый день будут присылаться почтовые сообщения о превышении лимита. Жестко заданная квота не может быть превышена.

Модифицировать квоту для каждого пользователя можно командой edquota <username>. Если одна квота настраивается сразу для нескольких пользователей, ее можно скопировать командой:

edquota –p <protouser> david
  • Можно ли ограничить объем памяти, который может быть занят моими пользователями?

Вы можете воспользоваться командой ulimit чтобы ограничить число процессов, которые пользователь может запустить и объем памяти, который эти процессы могут занять. Пример использования команды:

ulimit -u 35
ulimit -s 2048
ulimit -c 0
ulimit -m 25600

Первая опция ограничит число процессов до 35. Не стоит указывать слишком маленькое число, иначе пользователь не сможет комфортно работать. Oпция –s ограничивает размер стека двумя мегабайтами. Oпция –c выставляет нулевой максимальный размер файла core , что означает, что файл core создаваться не будет. В заключение мы ограничили максимальный размер используемой памяти в 25600Kb.

  • Как насчет использования процессора? Могу я и это ограничить?

Да, используйте команду nice чтобы установить приоритет процесса и renice чтобы его поменять. Более безопасная опция – использовать так называемый «честный» планировщик (‘fair scheduler’) применив патч к ядру (http://www.surriel.com/patches), который способен уменьшать приоритет процесса, в случае если он начал занимать все процессорное время. LXF

Крaткая справка: установка ПО

При таком большом количестве дистрибутивов Linux, когда некоторые их них используют пакеты, другие практикуют установку с компиляцией исходных кодов, а третьи – комбинацию двух предыдущих способов, поддержка системы может оказаться весьма непростой задачей. Не говоря уже о том, что полдюжины дистрибутивов, использующих RPM, требуют свои собственные версии этих пакетов.

Это руководство призвано помочь вам установить программное обеспечение, используя все известные методы, покрывая все системы пакетов, используемые в распространенных дистрибутивах Linux.

Установка с компиляцией исходных текстов

Установка из пакетов работает не во всех дистрибутивах, в отличие от сборки программ из исходных текстов, которая будет работать везде от Red Hat до Debian и даже на отличных от Linux системах. Не все программы, поставляемые в виде исходных текстов компилируются одинаково, однако есть простые правила, которых желательно придерживаться. В папке компилируемой программы обычно присутствуют файлы README или INSTALL, в которых описывается процесс сборки, установки и настройки программы.

Поскольку разработчики предпочитают писать код гораздо больше, чем давать инструкции по установке, то легко понять, насколько хорошо эти файлы написаны …

Для абсолютного большинства программ первый шаг – это запуск скрипта configure. Oн выполнит ряд тестов системы, найдет библиотеки, компиляторы, требуемые заголовочные файлы и выполнит проверку необходимой для сборки информации.

Запустите скрипт configure, переместившись в каталог собираемой программы:

$ ./configure

Скрипт configure обычно имеет много параметров, которые могут повлиять на генерируемые бинарные файлы, с их помощью мы можем сообщить, с какими библиотеками нужно связать программу, какие модули должны быть скомпилированы, а также указать библиотеки и заголовочные файлы, которые оказались в нестандартном месте.

Если configure определил, что все нормально, мы можем запустить сборку и установку программы.

С этого момента мы используем команду make:

$ make
$ make test

Cама установка должна выполняться пользователем root, если только программа не устанавливается в домашний каталог пользователя. Kомпиляция исходных текстов позволяет пользователю без root-привилегий установить программу в свой домашний каталог. Системы управления пакетами требуют привилегий суперпользователя для чтения и изменения информации о пакетах, которая располагается в каталоге /var, так что зачастую сборка исходных текстов – единственный вариант установки программы, если у вас нет прав суперпользователя.

После исполнения пользователем root команды make install, программа готова для использования. По умолчанию, она будет установлена в каталог /usr/local, все бинарные файлы будут помещены в /usr/local/bin, а все разделяемые библиотеки – в /usr/local/lib. В системах, где часто используется компиляция из исходных текстов, полезно добавить /usr/local/bin в переменную окружения $PATH в /etc/profile или /etc/bash_profile. каталог /usr/local/lib надо добавить в /etc/ld.so.conf, поскольку это нестандартный путь поиска библиотек.

Важно помнить, что процедура установки путем сборки исходных текстов лишь копирует файлы в определенные каталоги, поэтому вам может потребоваться ручное редактирование конфигурации. также удобно написать свой скрипт инициализации (init.d) или поискать его в Интернет, поскольку такие скрипты специфичны для каждого дистрибутива.

RPM

Большинство дистрибутивов используют менеджер пакетов RPM (Red Hat Package Manager). Red Hat, Mandriva, SUSE и множество других позволяют администратору устанавливать программы из RPM файлов. Важно помнить, что поскольку конфигурационная информация и скрипты обычно сильно отличаются для разных дистрибутивов, нужно устанавливать RPM именно для вашего дистрибутива.

Установка RPM очень проста, достаточно выполнить команду:

# rpm -Uvh traceroute-1.4a5-24.6x. i386.rpm

После запуска команды программа RPM проверит целостность RPM-пакета, инсталлирует и начнет его настройку. Любой, кто использовал RPM, вспомнит, что в девяти случаях из десяти процедура установки будет прервана из-за каких-либо неразрешенных зависимостей.

Kак правило, в этом случае стоит зайти на сайт http://rpmfind.net и поискать там отсутствующий пакет. Если проверка зависимостей потребует дополнительный пакет, опять идем на http://rpmfind.net.

После установки RPM-файл включается в базу данных установленных пакетов, а все что нужно для его работы, включая базовую конфигурацию, скрипты init.d и любые другие требуемые модификации системы, как, например добавление новых пользователей, изменение прав доступа будет сделано автоматически.

Deb

Пользователи Debian используют формат пакетов Deb. Эти пакеты обычно устанавливаются удобной утилитой apt-get. Начинается процесс установки с получения последних списков пакетов с серверов, командой apt-get update. Любой пакет, включенный в список мы можем установить.

Поиск пакета выполняется с помощью apt-cache, например так:

# apt-cache search php5

Kаждый пакет, ссылающийся на ‘php5’ в своем имени или описании, попадет в список, так что обычно имеет смысл пропустить поток вывода через grep.

Hужный пакет может быть установлен с помощью apt-get:

# apt-get install php5-cgi

Эта команда скачает указанный пакет вместе со всеми зависимостями, после чего начнет процедуру установки и настройки для каждого скачанного пакета. Большинство пакетов Debian устанавливаются, не требуя какого-либо вмешательства пользователя, но некоторые могут спросить про какие-то опции настройки. Переконфигурировать пакет можно с помощью команды:

# dpkg-reconfigure php5-cgi.

Конвертация пакетов

Чаще всего программы распространяются в виде исходных текстов и в формате менеджера пакетов предпочитаемого разработчиком. K сожалению, это означает, что альтернативные пакеты должны быть созданы сторонними разработчиками, так что должно пройти какое-то время прежде, чем такой пакет появится.

Утилита alien позволяет конвертировать из одного формата пакета в другой. Например, если у нас есть RPM мы можем создать пакет Deb, и установить его в Debian систему. Процесс конвертации проходит не так гладко, как если бы пакет изначально был спроектирован для конкретного дистрибутива, так что после этой процедуры может понадобиться внести дополнения в некоторые файлы.

Alien можно найти здесь: http://kitenet.net/programs/alien

Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию