| |
Основным настроечным файлом является /etc/defaults/rc.conf (обратитесь к rc.conf(5)) Скрипты начального запуска системы, такие, как /etc/rc и /etc/rc.d (обратитесь к rc(8)) просто включают этот файл. Не редактируйте этот файл! Вместо этого, если в файле /etc/defaults/rc.conf имеется параметр, который вы хотите изменить, то вы должны скопировать строчку с ним в файл /etc/rc.conf и поменять его значение именно здесь.
Например, если вы хотите запустить named, поставляемый сервер DNS, то всё, что вам нужно сделать, это:
# echo named_enable="YES" >> /etc/rc.conf
Чтобы запустить местные сервисы, поместите скрипты в каталог /usr/local/etc/rc.d. У этих скриптов должен быть выставлен бит выполнимости, и их имена должны оканчиваться на .sh.
Используйте команду adduser(8) или pw(8) в случае выполнения более сложных операций.
Чтобы удалить пользователя, используйте команду rmuser(8) или, если это будет необходимо, pw(8).
Обычно это случается при редактировании системного crontab-файла (/etc/crontab) и последующего использования утилиты crontab(1) для его установки:
# crontab /etc/crontab
Это неправильно. Системный crontab-файл имеет формат, отличный от пользовательских crontab-файлов, которые обновляет утилита crontab(1) (страница Справочника по crontab(5) описывает отличия более подробно).
Если это именно то, что вы сделали, то дополнительный crontab-файл является просто копией файла /etc/crontab в неправильном формате. Удалите его такой командой:
# crontab -r
В следующий раз при редактировании файла /etc/crontab, вам не нужно делать ничего для оповещения утилиты cron(8) о сделанных изменениях, так как она распознает их автоматически.
Если вы хотите запускать что-то один раз в день, неделю или месяц, то, наверное, лучше обновить скрипты /usr/local/etc/periodic и позволить команде periodic(8), запускаемой системной cron-утилитой, планировать их выполнение вместе с другими периодическими системными задачами.
Реальная причина ошибки заключается в том, что системный crontab-файл имеет дополнительное поле, указывающее, какой пользователь запускает команду. В системном crontab-файле, поставляемом с FreeBSD и используемом по умолчанию, это пользователь root для всех строк. Если этот crontab-файл используется в качестве crontab-файла пользователя root (что не то же самое, что системный crontab-файл), cron(8) полагает, что слово root является первым в команде на выполнение, но такой команды не существует.
10.4. Команда su выдает, что ``you are not in the correct group to su root'', когда я пытаюсь сменить привилегии на root.
Это особенность работы системы защиты. Для того, чтобы изменить свои привилегии на пользователя root (или любого другого пользователя, имеющего привилегии администратора), вы должны быть членом группы wheel. Если бы этого не было, любой, имеющий доступ к системе и узнавший пароль пользователя root, смог получить в системе администраторские полномочия. С такой же защитой этого не получится; su(1) будет препятствовать попыткам даже ввести пароль, если некто не являетесь членом группы wheel.
Чтобы разрешить кому-либо менять привилегии на root, просто включите его в группу wheel.
10.5. Я сделал ошибку в файле rc.conf или в каком-то другом файле начальной загрузки, и теперь не могу его отредактировать из-за того, что файловая система находится в режиме только для чтения. Что мне делать?
При получении приглашения на ввод полного пути до командного процессора, просто нажмите ENTER, а затем выполните команду mount / для повторного монтирования корневой файловой системы в режиме чтения/записи. Вам может также потребоваться выполнить команду mount -a -t ufs для монтирования файловой системы, в которой расположен ваш любимый редактор. Если редактор расположен на сетевой файловой системе, то вам потребуется выполнить сетевые настройки вручную до монтирования сетевой файловой системы, либо воспользоваться редактором, находящимся в локальной файловой системе, таким, как ed(1).
Если вы собираетесь использовать полноэкранный редактор, такой, как vi(1) или emacs(1), то вам нужно будет выполнить команду export TERM=cons25, чтобы такие редакторы смогли корректно взять данные из базы данных termcap(5).
После выполнения этих шагов вы сможете отредактировать файл /etc/rc.conf так, как вы это обычно делаете для исправления ошибки. Сообщение об ошибке, выводимое сразу же после сообщений при загрузке ядра, должно указать вам на номер строки в файле, которая содержит ошибку.
Обратитесь к соответствующему разделу Руководства, посвящённому печати. В нём описаны решения большинства ваших проблем.
Некоторые принтеры для выполнения любых операций по печати требуют наличия на хосте драйвера. Такие так называемые ``WinPrinters'' изначально во FreeBSD не поддерживаются. Если ваш принтер не работает в DOS или Windows NT 4.0, то, скорее всего, это WinPrinter. Единственное, что вам остаётся сделать в надежде на то, что вы заставите его работать, это проверить, поддерживает ли его порт print/pnm2ppa.
Пожалуйста, обратитесь к разделу Руководства, посвящённому использованию локализации, а именно к части, описывающей настройку консоли.
Ниже следует часть письма, опубликованного в списке рассылки freebsd-current.
Сообщение ``can't assign resources'' говорит о том, что устройство является устаревшим ISA-устройством, для которого в ядре присутствует драйвер, не поддерживающий PnP. К таким устройствам относятся контроллеры клавиатуры, микросхема контроллера программируемых прерываний, а также другие части стандартного набора. Ресурсы не могут выделены, потому что уже есть драйвер, использующий эти адреса. |
||
--Garrett Wollman
<wollman@FreeBSD.org> , 24 апреля
2001 |
Да, FreeBSD поддерживает IPC из System V, в том числе совместно используемую память, сообщения и семафоры. Во FreeBSD версий, вышедших после 3.2, IPC из System V поддерживаются в ядре GENERIC. В более ранних версиях FreeBSD для включения их поддержки нужно добавить следующие строки в файл конфигурации ядра.
options SYSVSHM # enable shared memory options SYSVSEM # enable for semaphores options SYSVMSG # enable for messaging
Перекомпилируйте и переустановите ядро.
10.11. Какое другое программное обеспечение для почтового сервера можно использовать вместо Sendmail?
Sendmail является программным обеспечением для работы почтового сервера во FreeBSD, используемым по умолчанию, но вы можете с легкостью заменить его другим MTA (к примеру, установленным из портов).
В дереве портов уже имеются различные альтернативные MTA, из которых mail/exim, mail/postfix, mail/qmail, mail/zmailer являются одними из самых популярных.
Разнообразие хорошо, а тот факт, что у вас есть выбор из многих различных почтовых серверов, является хорошим признаком; поэтому попытайтесь не задавать вопросы типа ``Sendmail лучше, чем Qmail?'' в списках рассылки. Если вы захотите получить ответ, сначала просмотрите архивы списков рассылки. Достоинства и недостатки каждого из имеющихся MTA уже обсуждались неоднократно.
Без паники! Просто перезапустите систему, наберите boot -s в приглашении Boot: (или просто -s в случае использования версий FreeBSD до 3.2) для входа в однопользовательский режим. На вопрос об используемой оболочке нажмите ENTER. На приглашение # введите mount -u /, чтобы перемонтировать корневую файловую систему в режиме чтения/записи, после чего выполните команду mount -a для монтирования всех файловых систем. Запустите команду passwd root, чтобы сменить пароль пользователя root, а затем exit(1) для продолжения процесса загрузки.
Если вы используете драйвер консоли syscons (который является стандартным), перегенерируйте и установите новое ядро со следующим параметром.
options SC_DISABLE_REBOOT
в конфигурационном файле. Если же вы используете драйвер консоли PCVT, то вместо вышеуказанной включите в конфигурационный файл следующую строку.
options PCVT_CTRL_ALT_DEL
Используйте такую команду:
% perl -i.bak -npe 's/\r\n/\n/g' file ...
где file - это имя файла(ов) для преобразования. Преобразование делается в том же самом файле, оригинальные файлы сохраняются с расширением .bak.
Это преобразование также можно выполнить с помощью команды tr(1):
% tr -d '\r' < dos-text-file > unix-file
где dos-text-file - это имя файла, содержащего текст DOS, а в файл unix-file будет помещён уже преобразованный текст. Этот способ может работать гораздо быстрее, чем при использовании perl.
Используйте команду killall(1).
Эта ошибка выдаётся распределённой системой аутентификации Kerberos. Эта ошибка не фатальна, однако это раздражает. Вы можете запустит su с ключом -K либо деинсталлировать Kerberos, как описано в следующем разделе.
Чтобы убрать Kerberos из системы, переустановите дистрибутив bin того релиза, который у вас запущен. Если у вас есть CDROM, вы можете смонтировать компакт-диск (положим, в каталог /cdrom) и выполнить команду
# cd /cdrom/bin # ./install.sh
Либо вы можете убрать все опции MAKE_KERBEROS из файла /etc/make.conf и выполнить полное перестроение системы.
Во FreeBSD 5.X используется система devfs(8) устройств по требованию. Драйверы устройств автоматически создают новые файлы устройств, как только в них появляется необходимость, таким образом обходясь без /dev/MAKEDEV.
Если вы работаете с FreeBSD 4.X или более ранней версией, и файл /dev/MAKEDEV отсутствует, то у вас действительно есть проблема. Возьмите копию из исходных кодов системы, как правило, из /usr/src/etc/MAKEDEV.
Если у вас много пользователей, работающий в сеансах telnet, ssh, X или в screen, вам можете столкнуться с проблемой нехватки псевдотерминалов. Их количество можно увеличить следующим образом:
Откомпилируйте и инсталлируете новое ядро, в конфигурационный файл которого входит такая строка:
pseudo-device pty 256
Выполните следующие команды:
# cd /dev # sh MAKEDEV pty{1,2,3,4,5,6,7}
для создания 256 дополнительных файлов устройств для новых терминалов.
Отредактируйте файл /etc/ttys, добавив по строке для каждого из 256 терминалов. Они должны соответствовать формату существующих строк, то есть должны выглядеть вот так:
ttyqc none network
Порядок назначения букв при записи в виде регулярного выражения имеет вид tty[pqrsPQRS][0-9a-v].
Теперь осталось только перезапустить систему с новым ядром.
Такого устройства, как snd, не существует. Это название используется в качестве краткого обозначения различных устройств, которые составляют во FreeBSD звуковой драйвер, таких как mixer, sequencer и dsp.
Для создания этих устройств вы должны сделать следующее:
# cd /dev # sh MAKEDEV snd0
Note: Вы можете пропустить этот шаг, если используете FreeBSD 5.0-RELEASE или более новую версию с включенным механизмом devfs(5).
Перейдите в однопользовательский режим, а затем возвратитесь обратно в многопользовательский.
На консоли выполните следующее:
# shutdown now (Замечание: без -r или -h) # return # exit
10.22. Я пытался обновить мою систему до последней -STABLE, а получил -RC или -PRERELEASE! Что происходит?
Краткий ответ: это же просто название. RC означает ``Release Candidate''. Это значит, что вскоре произойдет выход релиза. Во FreeBSD появление -PRERELEASE, как правило, равнозначно прекращению внесения изменений в код системы перед появлением релиза. (Для некоторых релизом метка -BETA использовалась точно так же, как и PRERELEASE.)
Подробный ответ: во FreeBSD релизы выпускаются из одного из двух мест. Крупные релизы, точка-ноль, такие, как 3.0-RELEASE и 4.0-RELEASE, ответвляются от основного потока разработки, более известного как -CURRENT. Мелкие релизы, такие, как 3.1-RELEASE или 4.2-RELEASE, являлись снэпшотами активной ветки -STABLE. Начиная с 4.3-RELEASE, каждый релиз также имеет свою ветвь, которой могут следовать те, кому необходим сверхконсервативный метод обновления (как правило, внесение только тех исправлений, которые касаются вопросов обеспечения безопасности).
Когда делается релиз, то ветвь, из которой он выпускается, подвергается некоторой подготовке. Частью этого процесса является замораживание кода. Когда инициируется замораживание кода, то имя ветки изменяется для того, чтобы отразить факт близости релиза. Например, если ветка называлась 4.5-STABLE, то её имя будет изменено на 4.6-PRERELEASE, чтобы обозначить момент прекращения внесения изменений в код системы и период дополнительного тестирования перед выходом релиза. В это время исправления ошибок могут быть внесены в код системы для того, чтобы быть включенными в релиз. Когда исходный код подготовлен к выпуску релиза, имя будет изменено на 4.6-RC для обозначения того, что релиз будет сделан, скорее всего, именно из этого кода. Когда код находится на этапе RC, в нём могут исправляться только самые критичные ошибки. Как только релиз (в нашем примере 4.6-RELEASE) и ветка релиза будут созданы, ветвь будет переименована в 4.6-STABLE.
Для получения дополнительной информации о номерах версий и различных ветках CVS обратитесь к статье о выпуске релизов.
Краткий ответ: Скорее всего, вы работаете в режиме безопасности, большем, чем 0. Для установки ядра перезагрузите машину и войдите в однопользовательский режим.
Подробный ответ: FreeBSD запрещает менять системные флаги при работе на уровнях безопасности, превышающих 0. Вы можете определить ваш уровень такой командой:
# sysctl kern.securelevel
Вы не можете понизить уровень безопасности; для установки ядра вам нужно перезагрузиться в однопользовательский режим, или изменить уровень безопасности в /etc/rc.conf, а затем выполнить перезагрузку. Обратитесь к странице Справочника по init(8) за подробной информацией об уровне безопасности и посмотрите /etc/defaults/rc.conf и справочную страницу по rc.conf(5) для выяснения подробностей о файле rc.conf.
Краткий ответ: Скорее всего, вы работаете на уровне безопасности, превышающем 1. Для смены даты перезагрузите машину и войдите в однопользовательский режим.
Подробный ответ: FreeBSD запрещает менять системное время на больше чем одну секунду при работе на уровнях безопасности, превышающих 1. Вы можете определить ваш уровень такой командой:
# sysctl kern.securelevel
Вы не можете понизить уровень безопасности; для изменения даты вам нужно перезагрузиться в однопользовательский режим, или изменить уровень безопасности в /etc/rc.conf, а затем выполнить перезагрузку. Обратитесь к странице Справочника по init(8) за подробной информацией об уровне безопасности, и посмотрите /etc/defaults/rc.conf и справочную страницу по rc.conf(5) для выяснения подробностей о файле rc.conf.
Нет, там нет ошибок и он не использует 256 Mb памяти. Ему просто нравится (что он постоянно и делает) отображать неприлично большой кусок памяти в свое адресное пространство для удобства. Здесь нет ничего неправильного с технической точки зрения, это просто сбивает с толку программы вроде top(1) и ps(1)
rpc.statd(8) отображает свой статусный файл (находящийся на /var) в свое адресное пространство. Для того чтоб постоянно не беспокоится о будущих переотражениях, когда файл вырастет в размерах, он просто отображает его с огромным размером заранее. Это просто заметить в исходных текстах, где как вы можете увидеть параметр длина к функции mmap(2) имеет значение 0x10000000, или одна шестнадцатая адресного пространства для IA32, то есть 256Mb.
Вы работаете в системе с повышенным (то есть большим, чем 0) уровнем защиты. Понизьте уровень защиты и попробуйте еще раз. Для получения более подробной информации обратитесь к разделу FAQ об уровне защиты и справочной странице о init(8).
10.27. Почему в SSH аутентификация посредством файла .shosts не включена по умолчанию в последних версиях FreeBSD?
Причиной, по которой .shosts аутентификация не работает по умолчанию в последних версиях FreeBSD, является то что ssh(1) не устанавливается более с битом изменения привилегий на пользователя root. Если вы хотите ``исправить'' это, то вы можете сделать одно из двух нижеприведённых действий:
Как постоянную правку, установите ENABLE_SUID_SSH в true в файле /etc/make.conf и перекомпилируйте ssh.
Как временную правку измените права доступа к файлу /usr/bin/ssh на 4555 командой chmod 4555 /usr/bin/ssh из-под администратора. А потом добавьте строку ENABLE_SUID_SSH=true в файл /etc/make.conf, чтоб это изменение осталось в силе после очередного обновления системы с помощью make world.
vnlru сбрасывает и освобождает vnode, когда система достигает своего ограничения по параметру kern.maxvnodes. Этот подпроцесс ядра в основном работает вхолостую и активируется только при наличии огромного объема ОЗУ и обращении к десяткам или тысячам файлов маленького размера.
Active: по статистике страницы недавно использовались.
Inactive: по статистике страницы недавно не использовались.
Cache: (наиболее часто) страницы, которых перемещены из числа неактивных в статус, в котором они содержат данные, но которые могут часто сразу же использоваться повторно (как с их старым содержимым, так и повторно с новым.) Это может быть некоторое непосредственное перемещение из числа активных в состояние 'cache', если известна чистота (немодифицированность) страницы, но такое перемещение определяется политикой, зависящей от выбора алгоритма разработчиком VM-системы.
Free: страницы, не содержащие данных, и которые могут быть использованы при некоторых условиях, когда страницы кэша могут не подойти. Свободные страницы могут повторно использоваться в состояниях прерывания или процессах.
Wired: страницы, зафиксированные в памяти, обычно для использования ядром, а также иногда для специального использования процессами.
Страницы чаще всего записываются на диск (типа синхронизации VM), когда они находятся в состоянии 'inactive', однако страницы в состоянии 'active' также могут сбрасываться (но это требует наличия определённых возможностей ЦПУ.) Это зависит от наличия и возможности отслеживания со стороны ЦПУ бита 'модифицированности', и в некоторых ситуациях это может быть лучше для блока синхронизируемых страниц VM, вне зависимости от их активности. В большинстве встречающихся ситуаций лучше всего представлять 'неактивную' очередь как очередь сравнительно неиспользуемых страниц, которые могут быть, а могут и не быть в процессе записи на диск. 'Кэшируемые' страницы уже 'синхронизированы', не отображаются, но доступны для непосредственного использования процессом со своей старой или новой привязкой. Свободные страницы доступны на уровне прерывания, однако кэшируемые или свободные страницы могут использоваться в процессе повторно. Кэшируемые страницы недостаточно заблокированы для того, чтобы быть доступными на уровне прерывания.
Есть ещё некоторые другие флаги (например, флаг Busy или счётчик занятости), которые могут изменить некоторые описанные правила.
Есть несколько понятий ``свободной памяти''. В одном случае это объём памяти, непосредственно доступной в данный момент без страничной выгрузки чего-либо. Этот объём равен примерно размеру очереди кэша + размер очереди на высвобождение (с учётом допустимых отклонений, зависящих от настроек системы.) В другом случае ``свободная память'' обозначает общий объём пространства VM. Он может сложно вычисляться, но зависит от объёма раздела подкачки и памяти. Другие определения ``свободной памяти'' также возможны, но они достаточно бесполезны, ведь в любом случае важно сохранять низкий уровень подкачки и избегать исчерпания раздела подкачки.
/var/empty представляет собой каталог, который использует программа sshd(8) при выполнении разделения полномочий. Каталог /var/empty пуст, его владельцем является root и на нём установлен флаг schg.
Хотя этот каталог удалять не рекомендуется, для выполнения этой операции вам нужно сначала снять флаг schg. Обратитесь к справочным страницам по chflags(1) для получения более полной информации (и помните про ответ на вопрос о снятии флага schg).
Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
По вопросам связанными с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам связанным с русским переводом документации, пишите <frdp@FreeBSD.org.ua>.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |