Главная | Контакты



Главная > Операционные системы > UNIX > BSD > FreeBSD

FAQ FreeBSD

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

cd /lib
ln -s /lib/libm.so.5 /lib/libm.so.4
ln -s /lib/libutil.so.7 /lib/libutil.so.5
ln -s /lib/libcrypt.so.4 /lib/libcrypt.so.3
ln -s /lib/libc.so.7 /lib/libc.so.6

Второй вариант это создать файл /etc/libmap.conf с похожим выше содежимым:
/lib/libm.so.5 /lib/libm.so.4
/lib/libutil.so.7 /lib/libutil.so.5
/lib/libcrypt.so.4 /lib/libcrypt.so.3
/lib/libc.so.7 /lib/libc.so.6

/usr/ports/sysutils/libchk - сгодится для идентификации портов (те, что установлены в системе) использующих старые библиотеки
cd /usr/src && make check-old - для просмотра старых файлов, директорий и библиотек


Показать размер занимаемого места каталогом на диске
du -hsx /каталог
du -h -s /*


Определение модели материнской платы во FreeBSD

dd if=/dev/mem bs=64k skip=15 count=1|strings|less

Скорость на всех интерфейсах в том числе статистика

systat -ifstat

Тестирование архивов

tar tzf archive.tar.gz

или

gzip -vt archive.tar.gz


Во втором случае Будет проверено только сжатие, в первом выведутся имена хранящихся в .tar файлов.

    FreeBSD: административные особенности

    Вместо предисловия

Начинать надо с FreeBSD Handbook Проект по переводу документации FreeBSD www.freebsd.org.ua

    Что доставить дополнительно из портов

sudo
bash
zip
lsof
wget
nmap
thttpd (лечить)
rar
unrar

    Как задать статический роутинг

/etc/rc.conf :

static_routes="net1 net2"
route_net1="-net 192.168.0.0/24 192.168.0.1"
route_net2="-net 192.168.1.0/24 192.168.1.1"

    Как загрузиться с нестандартного boot-пути

F1
boot: 0:ad(2f)

    Как сделать ftp-only юзера с chroot'ом в его домашнем каталоге

 Если обычный ftpd, то

  прописать ему шелл '/bin/date' или '/usr/bin/true' и вписать его в
 '/etc/shells'
 - вписать его в '/etc/ftpchroot'

  Для proftpd вписать в /usr/local/etc/proftpd.conf

DefaultRoot ~
# AllowStoreRestart    on
# AllowRetrieveRestart on
#     DirFakeUser         on ~
#     UseFtpUsers         off
#     MaxClientsPerHost   5

    какой командой создается новый раздел диска

(в процессе установки всё проходит гладко).

man sysinstall
man newfs

    где живут rc-скрипты начальной загрузки

/etc/rc.*       - это системные, их - не трогать!
/usr/local/etc/rc.d/*.sh        - вот сюда будут попадать ваши.

    Чтобы гарантировано отрабатывал fsck после ресета

      fsck_y_enable="YES"
      в /etc/rc.conf

    что там вместо /etc/hosts.allow

tcp_wrapper встроен в inetd

man inetd
man 5 hosts_access
man 5 hosts_options

управляется через /etc/hosts.allow

    Редактирование свойств юзера. vi /etc/passwd не работает

vipw

    Как задать hostname

vi /etc/rc.conf

# hostname  new_hostname
раскомментировать
hostname="new_hostname"

    Перезапуск named

man ndc
ndc reload

    Перекомпиляция ядра

Классическая схема для BSD-ядер http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-building.html http://freebsd.org.ru/how-to/kernelconfig.html
 cd /usr/src/sys/i386/conf/
 cp GENERIC YOURKERNEL
 /usr/sbin/config YOURKERNEL
 cd ../compile/YOURKERNEL

 make depend && make

# теперь вздрогнул, подумал, и...

 make install

    Оживляем ethernet Intel82562 Express Pro 100 на 865 матерях

http://www.freebsd.org/cgi/query-pr.cgi?pr=53228
Intel D865GBFL motherboard (AA Revision C25843-401) Integrated LAN with Intel 82562EZ PLC 2.4C GHz Pentium 4 processor (800MHz, HT) FreeBSD 4.8-RELEASE -- GENERIC kernel (although, would presumably happen with any kernel with the current fxp driver) Version info from if_fxp.c: * $FreeBSD: src/sys/dev/fxp/if_fxp.c,v 1.110.2.28 2003/01/28 11:17:33 sanpei Ex p $ Relevant output from 'pciconf -lv': none4@pci1:8:0: class=0x020000 card=0x302f8086 chip=0x10508086 rev=0x01 hdr=0x00 vendor = 'Intel Corporation' class = network subclass = ethernet Description The fxp driver fails to recognize the integrated Intel 82562EZ LAN on the Intel D865GBFL motherboard. If my diagnosis is correct, this is the result of this version of the 82562 chip reporting a new PCI "chip id", as has happened before (see kern/39974). How-To-Repeat Install 4.8-RELEASE on a system with an Intel D865GBFL motherboard (the AA Revision on the board in question was C25843-401). During and after installation, the kernel (specifically the fxp driver) fails to detect the on-board Intel 82562 LAN. Fix Add an entry to the fxp_ident_table array in sys/dev/fxp/if_fxp.c for the new PCI chip id and re-build the kernel. Here's a patch: --- if_fxp.c Wed Jun 11 16:36:59 2003 +++ if_fxp.c-patched Wed Jun 11 16:36:30 2003 @@ -165,6 +165,7 @@ { 0x103C, "Intel Pro/100 Ethernet" }, { 0x103D, "Intel Pro/100 Ethernet" }, { 0x103E, "Intel Pro/100 Ethernet" }, + { 0x1050, "Intel Pro/100 Ethernet" }, { 0x1059, "Intel Pro/100 M Mobile Connection" }, { 0, NULL }, };

    Дисковые устройства

IDE-диски:

 /dev/ad0 (нумерация с 0)
 /dev/ad1 ...

SCSI-диски:

 /dev/da0 (нумерация с 0)
 /dev/da1 ...

Разделы на диске (они же - слайсы)
Для разметки используется fdisk с дикими ключами

 /dev/ad0s1 (нумерация с 1-го)
 /dev/ad0s2 ...

BSD-subsections внутри раздела
Для разметки используется disklabel с дикими ключами

 /dev/ae0s2е (нумерация от е до h, abcd - служебные подсекции)
 /dev/ae0s2ф ...

Впрочем,   вручную   эти   команды   совершенно  неоперабельны,  вместо  них
используется административный фронтенд /stand/sysinstall


USB-Флоппи-диски (прикидываются SCSI-дисками)

 /dev/de0

IDE-DVD/CDROM

 /dev/acd0c

Типы файловых систем

 ufs
 ufs2 (начиная с 5.1 RELEASE)
 iso9660
 msdos

    Постинсталляция

Конфигуратор

 /stand/sysinstall

Просто конфигур

 /etc/rc.conf

    Параметры ядра

Посмотреть
 sysctl -a|grep ip

Задать в онлайне
 sysctl   net.inet.icmp.icmplim=400

Для постоянной установки записать в  /etc/sysctl.conf

 переменная=значение

net.inet.icmp.icmplim=400
kern.maxfiles=32768

net.inet.ip.portrange.randomized=0
net.inet.ip.portrange.first=49152
net.inet.ip.portrange.last=65535

kern.ipc.somaxconn=4096

Readonly параметры поменять через  /etc/sysctl.conf не удастся.
Их мы записываем в

/boot/loader.conf
kern.ipc.nmbclusters="32768"
kern.ipc.nmbufs="131072"


Часть параметров задается в /usr/src/sys/i386/config/LINT

А можно дописать их в YOURKERNEL

 Например вполне разумно смотрятся
maxusers        512
options         NMBUFS=16384
options         NMBCLUSTERS=32768

    Как смотреть температуру процессора, скорость вращения вентиляторов

 lmmon из портов.
 consolehm
 healthd

    Установка пакета из сети

Makefiles для установки пакетов лежат в /usr/ports
Для инсталляции пакета xyz:

  locate xyz | grep /usr/ports # определяем его портовую директорию
  cd /usr/ports/whereitis/xyz  # и переходим в нее
  make install
  если не хотим качать пакет из интернета - заранее кладем его в
  /usr/ports/distfiles


     или же просто

export PACKAGEROOT='ftp://ftp.*ближайшее зеркало*.freebsd.org'
pkg_add -r package_short_name #  (имя папки в портах, как правило)

А еще есть
/usr/ports/sysutils/portupgrade

    Как обновить дерево портов

Для начала его надо просто установить. Для этого
/sbin/sysinstall
  Configuration
    Distribution
       Ports      и устанавливаем их из сети

Потом собираем и ставим cvsup
/usr/ports/net/cvsup-without-gui
make install
man cvsup # и внимательно читаем

Затем создаем файл ~/sup/ports-supfile # что брать и откуда
###########################################################
*default host=cvsup6.ru.FreeBSD.org
*default base=/usr
*default prefix=/usr
*default release=cvs tag=.
*default release=cvs delete use-rel-suffix compress
*default compress
ports-all
###########################################################

Затем создаем файл ~/sup/refuse # список, чего не брать
doc/da_*
doc/de_*
doc/es_*
doc/el_*
doc/fr_*
doc/it_*
doc/ja_*
doc/nl_*
doc/no_*
doc/pl_*
doc/pt_*
doc/ru_*
doc/sr_*
doc/zh_*
ports/arabic
ports/chinese
ports/french
ports/german
ports/hebrew
ports/hungarian
ports/japanese
ports/korean
ports/polish
ports/portuguese
# ports/russian
ports/ukrainian
ports/vietnamese
# ports/x11
# ports/x11-clocks
# ports/x11-fm
# ports/x11-fonts
# ports/x11-servers
# ports/x11-toolkits
# ports/x11-wm
# ports/x11-themes
##########################################
и наконец

cvsup ~/sup/ports-supfile # что брать и откуда

    Как назначить IP-alias на сетевой интерфейс


Одноразовая операция

ifconfig fxp0 alias 1.2.3.4 netmask 0xffffffff  # добавить
ifconfig fxp0 -alias 1.2.3.4                    # убрать

На постоянной основе:
/etc/rc.conf

ifconfig_fxp0_alias0="inet 81.19.6.18 netmask 0xffffffff"
ifconfig_fxp0_alias1="inet 81.19.6.19 netmask 0xffffffff"

    Атрибуты иммутабле


 флаг schg -- system immutable

 ls -lo /path/to/file   # посмотреть

 chflags 0 /path/to/file # сбросить

    Лечение bad blocks во FreeBSD

Подробнее - тут http://www.opennet.ru/openforum/vsluhforumID1/68600.html
SCSI  сами  лечат(ремапят)  свои  bad-блоки.  Начиная  с 4.2 из FreeBSD-fsck
убрали софтверный ремапинг. Но.  Аппаратный  авторемапинг  диска  происходит
только при записи данных в бэд-блок.

Можно  "положить"  поверх  bad-блоков  файлики (командой badset) и ничего не
лечить.

Можно провести ремапинг в режиме "почти-readonly"  DOS-утилитой mhdd32

Можно перепрописать диск командой dd

Как сделать предварительный бэкап? Ведь dd нарвавшись на bad-block прерывает
работу.  Нас  спасет  noconv=noerr,sync  (не  останавливаться  при   ошибке,
непрочитанные  блоки  заменять  нулями).  Размер  блока  имеет  смысл делать
кратным блоку fs, чтоб быстрее работало,  или  512  байт  -  чтобы  обнуляло
_только_ битые блоки.

# делаем бэкап
dd if=/dev/da4s1e bs=8k of=/path/file conv=noerror,sync

# "лечим-калечим", возможно, несколько раз
dd if=/dev/random bs=8k of=/dev/da4s1e conv=noerror,sync

# восстанавливаемся с бэкапа
dd if=/path/file bs=1024k of=/dev/da4s1e

    What do I do when I have bad blocks on my hard drive?

With  SCSI drives, the drive should be capable of re-mapping these automati-
cally. However, many drives are shipped with this feature disabled, for some
mysterious reason...

To  enable this, you will need to edit the first device page mode, which can
be done on FreeBSD by giving the command (as root)

    # scsi -f /dev/rsd0c -m 1 -e -P 3


С IDE-шными дисками может пройти такой вариант

fsck -y /dev/ad0s1e
  ** /dev/ad0s1e
  ** Last Mounted on /home/new
  ** Phase 1 - Check Blocks and Sizes
  CANNOT READ: BLK 204513248
  UNEXPECTED SOFT UPDATE INCONSISTENCY

mount -f /dev/ad0s1e /fs
mkdir /fs1/BAD-DIR
badsect /fs1/BAD-DIR 204513248
umount /fs1
fsck -y  /dev/ad0s1e

После  ремонта  битые  сектора  будут лежать в порожденных файлах, с именами
образованными из номеров битых секторов, удалять которые конечно-же не надо.
Фокус  работает  только  если  битые  сектора приходятся на блоки данных или
free-list


mount -f /dev/ad0s1e /fs1
ls -al /fs1/BAD-DIR
-rw-r--r-- 1 root wheel 1428509 Sep 17 2004   204513248

    Исправление загрузчика

- выписываешь fstab на листок
- выполняешь boot0cfg -v ad0 (смотрим стандартный загрузчик или bootmanager)


boot0cfg -o noupdate -s 1 /dev/ad0

noupdate - не позволять бутменеджеру менять умолчание загрузчика, и помнить слайс 1
-m 3   зачем???

- fdisk -B ad0 (грохаем бутменеджер)
- bsdlabel ad0s1 > save-old.label (сохраняем на всякий случай разбивку)
- bsdlabel -B ad0s1 (прописываем стандартный загрузчик)

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

# bsdlabel -w -B ad0s1

# man bsdlabel (покажет где берется загрузчик ls -la /boot/boot
/boot/boot    Default boot image

# man 8 boot
...
     /boot.config  parameters for the boot blocks (optional)
     /boot/boot1   first stage bootstrap file
     /boot/boot2   second stage bootstrap file
     /boot/loader  third stage bootstrap
     /boot/kernel/kernel
                   default kernel

-------------------------------------------

 поплясал вокруг сервера, побил в бубен и добавил строку в ядро

options      ROOTDEVNAME=\"ufs:ar0s1a\"

все заработало

Обновление конкретного порта

Для того что бы обновить конкретный порт является не рационально обновлять все дерево портов. А в обновлении только конкретного порта нам поможет portupgrade
Устанавливаем portupgrade (при установке он потянет за собой ruby, если он конечно же у вас не установлен)

cd /usr/ports/ports-mgmt/portupgrade
make
make install
make clean

rehash

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

Теперь можно обновлять установленные порты (ключ -R говорит о том, что нужно обновить не только порт, но и все его зависимости)

portupgrade -R имя_порта

Чтобы узнать список портов, нуждающихся в обновлении, существует команда

pkg_version -v

Для наведения порядка (удаление неиспользуемых портов, дубликатов версий) в реестре установленных портов (/var/db/pkg) можно воспользоваться командой

pkgdb -F


Как удалить порт с зависимостями

При установке порта во FreeBSD, частенько он за собой тянет целый воз зависимостей. Чтобы удалит порт вместе с зависимостями есть такая штука как pkg_rmleaves:

cd /usr/ports/ports-mgmt/pkg_rmleaves/
make install clean
rehash
pkg_rmleaves -d

Далее выбираем нужный порт и удаляем.


Создание полной копии HDD с помощью dd и nc

Хочу рассказать, как делать копию жесткого диска по сети в никсах. Именно, полную копию HDD, а не разделов.

Итак, имеем 2 никсовые машины в сети – Server(192.168.0.1) и Backup(192.168.0.2).

На Backup запускаем nc в режиме ожидания соединений на 5000 порту, с последующим сжатием и выводом данных в файл:

# nc -l -p 5000 | gzip -5 -c > ./server_hdd.img.gz

На Server dd’им образ винта и напрямую сливаем по сети через nc на Backup

# dd if=/dev/sda | nc -w 10 192.168.0.2 5000

Теперь ждем. Чтобы посмотреть статус копирования – во втором терминале даем dd сигнал USR1:

# killall -SIGUSR1 dd

Для востановления полной копии на Server:

# nc -l -p 5000 | dd of=/dev/ad0

На Backup:

# zcat ./server_hdd.img.gz | nc 192.168.0.1 5000

Не забываем, что вся предыдущая информация на ad0 будет перезаписана!


Как не разбирая корпус посмотреть модель материнской платы

1. Просмотреть содержимое BIOS (проверял под Linux и FreeBSD)
dd if=/dev/mem bs=64k skip=15 count=1 | strings | less
в первых строчках обычно упоминается название материнской платы.

2. Воспользоваться утилитой dmidecode


Проверка на DDOS-атаки

#!/bin/sh
# находим все соединения и записываем их во временный файл ddos.iplist в каталоге tmp
netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n > /tmp/ddos.iplist
# очищаем скрипт бана айпишников
cat /dev/null > /tmp/iptables_ban.sh
# создаем DROP правила для 50 самых агрессивных ботов
awk ‘{if ($1 > 20) {print «/sbin/iptables -I INPUT -p tcp —dport 80 -s » $2 » -j DROP» }}’ /tmp/ddos.iplist >> /tmp/iptables_ban.sh
# следующая строка нужна только для того, чтобы создавался файл с просмотром всех правил iptables
echo «/sbin/iptables -L INPUT -v -n > /tmp/iptables.log» >> /tmp/iptables_ban.sh
# запускаем скрипт бана айпишников
bash /tmp/iptables_ban.sh
# делаем ротацию лога
cat /dev/null > /var/log/ddos/error.log
[ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
SniFFeR:
netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n | grep -v «Ваш IP сервера» > /tmp/ddos.iplist
- с помощью данной команды можно исключить из проверки на количество подключение IP адрес самого сервера


Очередность запуска сервисов FreeBSD.

Посмотреть очередность запуска сервисов в freebsd.
#rcorder /etc/rc.d/* /usr/local/etc/rc.d/*

Запустить или остановить службу можно скриптом, который лежит в папке /etc/rc.d/ .

сетевые службы.

Система FreeBSD 5.x/6.x скрипт для работы с сетевыми интерфейсами -> netif . Доступен только для рута (root):

Стартуем FreeBSD сетевую службу:
# /etc/rc.d/netif start
Остановить FreeBSD сетевую службу:
# /etc/rc.d/netif stop
restart FreeBSD сетевую службу:
# /etc/rc.d/netif restart

То-же самое при помощи ifconfig (если много сетевух и нет необходимости "ложить" все сетевые интерфейсы)

положить сетевуху (NIC) внаглую:
# ifconfig network-interface down
Запустить сетевой интерфейс (NIC):
# ifconfig network-interface up
Просмотреть список отключенных интерфейсов:
# ifconfig -d

Список включенных сетевух:
# ifconfig -u

FreeBSD обновить / перезагрузить таблицу маршрутизации (routing)
Обязательно надо обновить "routing table" после перезагрузки сетевой службы:
# /etc/rc.d/routing restart

Если надо все сделать все через ssh подключение:

Надо ввести команды как одну. Тогда все выполнится в фоновом режиме и никаких проблем с боевым серваком не возникнет:
# /etc/rc.d/networking restart && /etc/rc.d/routing restart

Просмотреть список отключенных интерфейсов:
# ifconfig -d
Список включенных сетевух:
# ifconfig -u

Использование программного RAID-1 (gmirror) в FreeBSD.

Программные реализации RAID, появившиеся в FreeBSD с версии 5.3:

* gstripe(8) обеспечивает чередование или RAID 0
* gmirror(8) обеспечиват зеркалирование/дуплекс или RAID 1
* graid3(8) обеспечивает чередование с контролем четности или RAID 3 Начальная g указывает на то, что эти утилиты пользуются возможностями, которые предоставляет GEOM (модульная дисковая структура).

Конфигурирование зеркалирования/дуплекса:
Для того чтобы сделать RAID1, необходимо иметь два идентичных (одного производителя и емкости) жестких диска.

  1. # sysctl kern.geom.debugflags=16
    kern.geom.debugflags: 0 -> 16 (необходимое изменение системы для возможности выполнения следующей команды)
  2. # gmirror label -v -b round-robin gm0 /dev/ad0
    Metadata value stored on /dev/ad0 (gmirror label создает зеркало, функция -v включает режим отладки, -b round-robin выбирает алгоритм балансировки (в настоящее время это наиболее быстродействующий алгоритм), gm0 - имя первого зеркала GEOM и /dev/ad0 указывает на диск, содержащий данные для зеркалирования.)
  3. # echo geom_mirror_load="YES" > /boot/loader.conf (автоматическая загрузка модуля geom)
  4. В /etc/fstab изменяем каждый ad на gm и вставляем mirror после /dev. (прим. /dev/ad0s1a редактируем на /dev/mirror/gm0s1a)
  5. # reboot
  6. # gmirror insert gm0 /dev/ad2
    GEOM_MIRROR: Device gm0: provider ad2 detected.
    GEOM_MIRROR: Device gm0: rebuilding provider ad2. (вставляем второй диск в зеркало).
  7. # gmirror list
  8. # gmirror status
  9. # gstat

Создание полной копии раздела.

  1. # cd / (заходим в тот каталог, который хотим скопировать)
  2. # pax -p eme -X -rw . /mnt (в /mnt предварительно подмонтировать тот накопитель, на который будем копировать файлы)

Команды для исправления ошибок на диске (система перестала грузиться).

Загрузится в single user mode.

  • mount -a (смонтировать все для записи, при необходимости использовать ключи -u -f -w)
  • fsck -y
  • fsck_ffs /dev/ad1s1a

Восстановление предыдущего ядра, после неудачной загрузки нового.

  1. При загрузки выбрать 6 пункт меню (loader prompt)
  2. OK unload
  3. OK load kernel.old (/boot/kernel.old/kernel или /boot/kernel.GENERIC/kernel)
  4. boot

Возможно загрузчик может не видеть диск с которого нужно загружать ядро, тогда нужно воспользоваться командой:

OK set currdev=disk1s1a
OK set rootdev=disk1s1a

или командой lsdev просмотреть список известных дисков и разделов, чтобы поставить свой вместо disk1s1a.

Утилита make и ее дополнительные команды.
 make fetch - скачивает приложение(порт).
 make extract - распаковывает его.
 make depends - перестроить зависимости.
 make patch - применить патчи к приложению.
 make build - собрать приложение из исходных тестов.
 make clean - "почистить" исходники после сборки.
 make deinstall - деинсталлировать приложение.
make reinstall - переустановить приложение после удаления.
make package - построить из порта package.
make -C /usr/ports/PACKAGE-PATH  -запускаем из любого места будет строить указанный порт, добавляем нужные метки (! опция нововведенная в 8.0 и выше точно есть) (пример #make -C /usr/ports/databases/php53-pdo_mysql/ install clean )
make WITH_ИМЯОПЦИИ=yes WITHOUT_ИМЯОПЦИИ=yes BATCH=yes install && make clean

В последнем случае включаем/выключаем опции и говорим принимать настройки по умолчанию (запрос настроек порта или зависимостей) установить и провести очистку от временных файлов
При необходимости можно использовать принудительную установку приложения(порта) командой:

make FORCE_PKG_REGISTER=YES install

 

Выход в сеть через прокси сервер для fetch во FreeBSD.

Для того, чтобы fetch шел через прокси-сервер, а не на прямую, в /etc/make.conf необходимо добавить:

HTTP_PROXY="http://192.168.0.1:3128"
FTP_PROXY="http://192.168.0.1:3128"

Также при закачке портов fetch можно заменить на wget для этог в /etc/make.conf нужно добавить FETCH_CMD=wget

Отключение ACPI.

1. acpi_load="NO" - добавить в loader.conf
2. unset acpi_load - если ядро не грузится
3. hint.acpi.0.disabled="1" - добавить в /boot/device.hints
4. loader.acpi_disabled_by_user="1"

 

Пользователи:

Если Вам нужен список пользователей системы выполняем скрипт:
cat /etc/passwd | cut -d: -f1 | grep -v \#

The cut command selects portions of a file.  We use ":" as the delimiting character.  And we want only the first field.  The grep eliminates lines with # in them, which normally appear at the start of the password file.

Exercises for the interested and motivated:
* try the above command without the grep
* remove the \ before the #
* try -f5 instead of -f1.

генератор паролей
/usr/ports/security/apg  - может работать в режиме сетевой службы (можно подключиться через сеть и получить пароли по предопределенным на сервере правилам ) 
% apg -t 

Удаление пользователя

# rmuser имя-пользователя
Matching password entry:
имя-пользователя:*:1002:0::0:0:имя-пользователя:/home/имя-пользователя:/bin/sh
Is this the entry you wish to remove? y
Remove user's home directory (/home/имя-пользователя)? y
Removing user (имя-пользователя): files(1) mailspool home passwd.

Чистим конфиг от комментариев (на примере exim.conf)

cat /etc/exim/exim.conf|grep -vi "^[ \t#]*$"|grep -vi "^[ \t#]*#.*$"

 


10.21. Как перечитать содержимое /etc/rc.conf и перестартовать /etc/rc без перезагрузки системы?

Перейдите в однопользовательский режим, а затем возвратитесь обратно в многопользовательский.

На консоли выполните следующее:

# shutdown now
(Замечание: без -r или -h)

# return
# exit

Косвенная проверка поверхности диска

Главная > Операционные системы > UNIX > BSD > FreeBSD