Як заборонити створення символічних лінків в /tmp

FreeBSD: В графі «оption» /etc/fstab для розділу /tmp потрібно вказати:

rw,noexec,nosuid,nodev,nosymfollow

Також можна на /home поставити nodev. Якщо там не буде виконуваних то й noexec. На  /var теж можана поміняти nodev, noexec, а взагалі nodev скрізь корисний,  символьні лінки  ніде не потрібні.

Як позбавиться від зростання висять FIN_WAIT_2 з’єднань під FreeBSD

Якщо використовується ipfw2 і зберегти стан правила, то від безперервного зростання з’єднань зі статусом FIN_WAIT_2 допомагає:

sysctl -w net.inet.ip.fw.dyn_keepalive=0

 

Htop в FreeBSD.

Looking up portsnap.FreeBSD.org mirrors… 5 mirrors found.
Fetching public key from portsnap5.FreeBSD.org… done.

…..

…..

…..

Applying patches… done.
Fetching 1 new ports or files… done.

Переходимо в

# cd /usr/ports/

# make search name=htop
Port:   htop-0.8.3
Path:   /usr/ports/sysutils/htop
Info:   A better top(1) — interactive process viewer
Maint:  yzlin@FreeBSD.org
B-deps: autoconf-2.62 autoconf-wrapper-20071109 automake-1.9.6_3 automake-wrapper-20071109 libtool-2.2.6b m4-1.4.14_1,1 perl-5.10.1_1 python26-2.6.5
R-deps: lsof-4.84A,5
WWW:    http://htop.sourceforge.net/

# cd sysutils/htop

# make install clean

В процесі інсталяції видалимо помилку

 

===>  Configuring for htop-0.8.3
***********************************************************
htop(1) requires linprocfs(5) to be mounted. If you don’t
have it mounted already, please add this line to /etc/fstab
and run `mount linproc`:
linproc /compat/linux/proc linprocfs rw 0 0
***********************************************************
*** Error code 1

Stop in /usr/ports/sysutils/htop.
*** Error code 1

Stop in /usr/ports/sysutils/htop.

 

Тоді зробимо, те що просять

vi /etc/fstab

…..

/dev/ad0s1g              /var/tmp                    ufs           rw                 2       2
/dev/acd0                 /cdrom                       cd9660     ro,noauto       0       0
linproc                      /compat/linux/proc       linprocfs   rw                  0       0

# mount linproc
mount: /usr/compat/linux: No such file or directory

Створюємо директорію

# mkdir /usr/compat/linux
# mount linproc
mount: /usr/compat/linux/proc: No such file or directory

Знову створюємо директорію

# mkdir /usr/compat/linux/proc
# mount linproc

#

Продовжуємо інсталяцію

# make install clean
===>   htop-0.8.3 depends on file: /usr/local/bin/python2.6 — found
===>   htop-0.8.3 depends on file: /usr/local/bin/automake-1.9 — found
===>   htop-0.8.3 depends on file: /usr/local/bin/autoconf-2.62 — found
===>   htop-0.8.3 depends on package: libtool>=2.2 — found
===>  Configuring for htop-0.8.3
checking for a BSD-compatible install… /usr/bin/install -c -o root -g wheel

….

….

===>   Compressing manual pages for htop-0.8.3
===>   Registering installation for htop-0.8.3
===>  Cleaning for automake-1.9.6_3
===>  Cleaning for autoconf-2.62
===>  Cleaning for lsof-4.84A,5
===>  Cleaning for automake-wrapper-20071109
===>  Cleaning for m4-1.4.14_1,1
===>  Cleaning for help2man-1.38.2_1
===>  Cleaning for autoconf-wrapper-20071109
===>  Cleaning for libsigsegv-2.8
===>  Cleaning for p5-gettext-1.05_3
===>  Cleaning for htop-0.8.3

# rehash

# htop

 

Для порівняння top

P.S.: В CentOS достатньо yum -y install htop.

Make World in FreeBSD.

Нам потрібно на робочій системі мати останні версії port-ів а також, останнє дерево вихідного коду, з цією метою ми встановлюємо програму cvsup. В портах  вона розміщена тут:

# cd /usr/ports/net/cvsup-without-gui
# make install clean

Створюємо каталог для наших робочих файлів

# mkdir /etc/cvsup

Копіюємо шаблони в робочу директорію

# cp /usr/share/examples/cvsup/standard-supfile /etc/cvsup/
# cp /usr/share/examples/cvsup/ports-supfile  /etc/cvsup/

Правимо standard-supfile  і ports-supfile  

Міняємо *default host=CHANGE_THIS.FreeBSD.org

на *default host=cvsup.ua.FreeBSD.org

Оновлюемо порти

cvsup /etc/cvsup/ports-supfile  

Оновлюємо (синхронізуємо) дерево вихідного коду з серверним (сорци повинні бути встановлені завчасно)

cvsup /etc/cvsup/standard-supfile

Потім переходимо в cd /usr/src для оновлення світу (Make World)

# make buildworld

Після цього нам потрібно зібрати власне ядро, для цього переходимо в

# cd /usr/src/sys/i386/conf/

Копіюємо

cp GENERIC My-Kernel

Додаємо необхідні опції, дізнатись які опції підтримує ваш сервер можна командою

# make LINT
cat ../../conf/NOTES NOTES | sed -E -n -f ../../conf/makeLINT.sed > LINT
echo «include LINT»     >  LINT-VIMAGE
echo «ident LINT-VIMAGE»        >> LINT-VIMAGE
echo «options VIMAGE»           >> LINT-VIMAGE

При цьому створюється файл LINT із списком, опис опцій можна дізнатись прочитавши файл

# cat /usr/src/sys/conf/NOTES | less

Далі починаємо компіляцію ядра

# cd /usr/src/

# make buildkernel KERNCONF=My-Kernel

Після компіляції ядро необхідно встановити наступною командою

# make installkernel KERNCONF=My-Kernel

По завершенні інсталяції нового ядра перезавантажуємо систему.

Після вдалого старту нового ядра, переходимо в однокористувацький режим, в сеансі root вводимо команду

# shutdown now

що призведе до переходу в режим single user, або вибрати пункт  (single user) в меню завантажувача, в цьому разі після завантаження потрібно ввести наступні команди:

# fsck -p (перевірка файлової системи)
# mount -u / (монтування кореневого розділу в режимі читання/запису)
# mount -a -t ufs (монтування всіх інших розділів)
# swapon -a (включаємо файл підкачки)

Для інсталяції нового світу (World) проводимо наступне

# make installworld
# mergemaster
# reboot

Вуаля, у нас нова система, але вона зовсім безпорадна як маленька дитина.

В настпній замітці будем навчати її і нарощувати мязи.