FreeBSD: Установка и настройка для VirtualBox

Это не мануал для профи, а заметка для меня. Скорее всего что-то делаю не по фэншуй.
Процесс установки с нуля не такой долгий, но, поскольку я делаю это не для физического сервера, а для теста на VirtualBox, то просто скачаю нужный образ:
FreeBSD 13.0-RELEASEamd64. Изначально образ запакован, поэтому после распаковки получим файл FreeBSD-13.0-RELEASE-amd64.vhd. Согласно расширению — это файл виртуального жёсткого диска.
1. Открываем VirtualBox
2. Создаём новую виртуальную машину «FreeBSD13»

Здесь я выбрал 4GB (4096MB) оперативной памяти, но жёсткий диск НЕ добавлял (don’t add a virtual hard disk).

 

3. Распакованный файл виртуального жёсткого диска переносим в папку с виртуальной машиной «FreeBSD13»
4. Переходим в менеджер управления виртуальными дисками:
FileVirtual Media ManagerAdd
5. В окошке «Please choose a virtual hard disk file» выбираем распакованный файл с расширением .vhd
6. Сейчас у него размер 5.03GB, изменим значение, например на 20GB, и нажмём кнопку Apply.
7. Закрываем окошко Virtual Media Manager
8. Открываем настройки виртуальной машины «FreeBSD13»:
FreeBSD13Settings…StorageStorage DevicesController IDEAdds hard disk:

9. В окошке выбора жёсткого диска, выбираем нужный нам:

Настройка

10. Если запустить эту виртуальную машину, то мы можем залогиниться только под рутом (пароль пустой).

root

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

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

 

12. Добавим в систему нового пользователя:

adduser
Тут всё довольно просто, на многие пункты ничего вводить не нужно, достаточно нажимать Enter .

 

13. Обновим локальную копию репозитория пакетов:

pkg update && pkg upgrade

14. Установим пакет sudo:

pkg install sudo

15. Многие ставят nano, но мне удобнее Midnight Commander:

pkg install mc

Если по умолчанию выбран в качестве шелла sh, то тут mc может выдать предупреждение:

Midnight Commander was built with subshell support, which works with most popular shells, e.g. bash(l), dash(l), tcsh(l), zsh(l), but not sh(l) due to its lack of «precmd» or equivalent hooks which mc(l) needs to read the subshell’s current directory.

$ env SHELL=/bin/sh mc
common.c: unimplemented subshell type 1
read (subshe1l_pty . . . ): No such file or directory (2)

Please either use more advanced interactive shell, or start mc(l) with -u (—nosubshell) switch if you’re confined to /bin/sh for some reason.

16. Чтобы с sudo могли работать члены группы WHEEL, внесём изменения в файл /usr/local/etc/sudoers (просто снимем комментарий):

/usr/local/etc/sudoers
#№ Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL : ALL) ALL

17. При этом необходимо не забыть добавить нашего пользователя в группу WHEEL:

pw groupmod wheel -m denis

Настройка SSH

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

 

18. Внесём правки в файл /etc/rc.conf (под рутом или запустив редактор с повышением привилегий):

/etc/rc.conf
sshd_enable="YES"

19. Изменим настройки sshd:

/etc/ssh/sshd_config
PermitRootLogin no
PubkeyAuthentication yes
PermitEmptyPasswords no
ChallengeResponseAuthentication no

20. Создадим ключи для подключения к серверу через PuTTY по SSH:
Здесь я не буду описывать все шаги, а просто оставлю ссылку на одну из прошлых заметок.
21. Убедившись, что логин по ключам проходит нормально, отключаем авторизацию по паролю.

/etc/rc.conf
PasswordAuthentication no

Смена шелл

В п.15 я установил Midnight Commander, но он привередлив к шеллу, поэтому его нужно запускать с ключом. Плюс ко всему у шелла sh неудобные горячие клавши. Сменю его на tsch.

 

22. Выведем список доступных шеллов:

cat /etc/shells

# $FreeBSD$
#
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/sh
/bin/csh
/bin/tcsh

23. Под рутом выполним команду для смены шелла пользователю denis:

chsh -s /bin/tcsh denis

24. Изменим горячие клавиши для работы через PuTTY (мне так привычнее):

~/.cshrc
if ($term == "xterm" || $term == "vt100" \
            || $term == "vt102" || $term !~ "con*") then
          # bind keypad keys for console, vt100, vt102, xterm
          bindkey "\e[1~" beginning-of-line  # Home
          bindkey "\e[7~" beginning-of-line  # Home rxvt
          bindkey "\e[2~" overwrite-mode     # Ins
          bindkey "\e[3~" delete-char        # Delete
          bindkey "\e[4~" end-of-line        # End
          bindkey "\e[8~" end-of-line        # End rxvt
endif

25. Для удобства изменю формат строки приглашения:

~/.cshrc
set prompt = "\n[%N@%m] %~%# "
set promptchars = ">#"
Результат вывода в консоли
[denis@vboxmachine] /etc>

26. Midnight Commander любит мусорить в хистори строки вида:

cd "`printf '%b' '\0057etc'`"

В связи с этим добавлю маленький костыль:

~/.cshrc
# Hide space symbol commands from MC
export HISTCONTROL=ignoreboth
Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments