Монтирование usb flash от юзера в FreeBSD

  • 14.07.10, 22:41
Как ни странно, но в FreeBSD процесс монтирования флеш-накопителя от
непривелигированного пользователя немного напоминает танец с бубном
:). По крайней мере, так мне показалось после проделывания этой
процедуры в Linux-системах.

Для того, чтобы можно было смонтировать накопитель от пользователя,
необходимо выполнить несколько действий.
Во-первых, разрешить монтирование пользователям, установив переменную
sysctl vsf.usermount в 1

srn@rawbeer ~>> cat /etc/sysctl.conf
...
vfs.usermount=1
...


Во-вторых, пользователь должен быть владельцем точки монтирования и
иметь, как минимум, права доступа на чтение для устройства накопителя.
С точкой монтирования всё понятно. С правами доступа к устройству
придется немного повозится. Поскольку начиная с ветви 5.Х в системе
используется механизм devfs, то эти права придется выставлять как раз
через него. В приведенной конфигурации подразумевается что
пользователь входит в группу operator.
Прямая атака на /etc/devfs.conf в виде записи

own da0 root:operator
perm da0 0660
own da0s1 root:operator
perm da0s1 0660


в качестве результата дала абсолютный ноль.
После непродолжительного гугления выяснил причину. Как оказалось,
записи в devfs.conf применяются только во время загрузки, а т.к. на
момент загрузки, usb устройство, как правило, не присоединено и
/dev/da0 с /dev/da0s1 не существуют, то правила own и perm никогда не
будут выполнятся.

Для динамически подключаемых устройств следует использовать файл
правил /etc/devfs.rules. Необходимо создать этот файл и создать в нем
секцию с нашими правилами. Для флеш-накопителя это будет нечто
подобное:

srn@rawbeer ~>> cat /etc/devfs.rules
[localrules=10]
add path 'da*0*' mode 0660 group operator


Формат файла можно посмотреть в devfs.rules(5), формат правил в
devfs(8).

В /etc/rc.conf необходимо указать созданный набор правил:

srn@rawbeer ~>> cat /etc/rc.conf
...
devfs_system_ruleset="localrules"
...


После этого перезапускаем devfs и пробуем монтировать накопитель.
Сразу же видим грабли.

srn@rawbeer ~>> sudo /etc/rc.d/devfs restart
srn@rawbeer ~>> mount -t msdosfs -o -L=ru_RU.KOI8-R /dev/da0s1 ~/flash
mount_msdosfs: cannot find or load "msdosfs_iconv" kernel module
mount_msdosfs: msdosfs_iconv: Operation not permitted


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

Красивого решение проблемы не нашёл. Как описано в блоге StraNN'ое
место, существуют два варианта решения этого бага. Либо добавить
SUID-бит для команд mount_msdosfs и umount, либо первоначально
монтировать устройство от пользователя root. К сожалению второй
вариант мало подходит, т.к. устройство вовремя загрузки системы не
подключено.

Так что, пока пришлось воспользоваться SUID-правами на командах.
Осталось лишь прописать для удобства точку монтирования в fstab и всё
готово.

http://www.opennet.ru/base/sys/freebsd_usb_user_mount.txt.html

Иксы для OpenSuse

  • 05.07.10, 15:11
После того, как мы с вами подключились к интернету, самое время установить драйвер для нашей видеокарты. Дело в том, что из-за своей лицензии драйвера NVIDIA не могут быть интегрированы в дистрибутив openSUSE. А сам дистрибутив поставляется с «опенсорсной» версией драйвера, который к слову сказать, не поддерживает 3D ускорение. В принципе, можно успешно «жить» и с ним. Но а как же игры и 3D рабочий стол? Правильно, в этом случае никак :) . Поэтому приступим.

У вас есть 2 пути: налево пойдешь – коня потеряешь, направо – голову сложишь… Шучу :) Ну а если серьезно, то у вас есть 2 пути: простой и сложный. Начнем с простого.

1. Простой способ.

Называется он «Установка в 1 клик». Одним кликом мышкой вы, конечно, не отделаетесь, но за 2-3 управиться вполне реально :) . Собственно, все что требуется – кликнуть по ссылке и открыть файл nvidia.ymp  спомощью  yast. После запроса пароля суперпользователя запустится мастер и все что вам требуется, пару раз нажать «Далее». После этого yast подключит репозиторий с драйверами NVIDIA, скачает необходимые пакеты и установит в систему. Собственно, после этого вам нужно будет только перегрузить машину.

Ссылка для новых видеокарт NVIDIA (Geforce 6xxx и выше):

Установка в 1 клик nvidia

Для видеокарт Geforce FX (5xxx):

Установка в 1 клик nvidia

Для всех видеокарт NVIDIA Legacy (устаревших моделей):

Установка в 1 клик nvidia

2. Сложный способ.

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

Главный минус данного способа – если вы обновите ядро linux, то вам придется установить видеодрайвер повторно.

Для начала вам нужно установить некоторые пакеты, необходимые инсталлятору NVIDIA для сборки драйвера. Запускаем консоль и выполняем:

~>sudo zypper in gcc make kernel-source kernel-syms kernel-desktop-devel

Команда sudo позволяет выполнять команды от имени суперпользователя и, после запроса пароля root, указанные пакеты установятся в систему.

Теперь идете на сайт NVIDIA, выбираете серию своей видеокарты и операционную систему (linux 32-bit или linux 64-bit) и скачиваете драйвер. Например,  NVIDIA-Linux-x86_64-195.36.24-pkg2.run. Допустим, вы сохранили его в свой домашний каталог.

Теперь выходим из сеанса KDE или GNOME. Нажимаем Ctrl+Alt+F1 и переходим в консоль. Логинимся под root и набираем:

# telinit 3

Эта команда переведет нас в runlevel 3 (уровень запуска без графической подсистемы).

Теперь переходим в каталог, в который мы сохранили драйвер. В нашем случае это:

# cd /home/<имя_пользователя>

И запускаем инсталлятор:

# sh NVIDIA-Linux-x86_64-195.36.24-pkg2.run

Или проще:

# sh NVIDIA*.run

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

Теперь вам нужно настроить xorg на использование драйвера NVIDIA:

# sax2 -r -m 0=nvidia

Sax2 запустит программу настройки. Можно сделать дополнительную настройку, но это не обязательно.

Теперь переводим систему в runlevel 5 (уровень запуска с графической подсистемой):

# telinit 5

И выходим из сеанса root:

# logout

Теперь нажимаем Ctrl+Alt+F7 и переходим в графический режим.

Если вы все сделали правильно, то xorg будет работать уже с новыми драйверами.

оригинал тут

http://www.suseblog.org.ua/preference/drajver-nvidia-v-opensuse

также как бороться с ATI

http://www.suseblog.org.ua/preference/lyubov-i-kovarstvo-ati

http://desktoplinux.ru/node/10

Компиляция ядра OpenSuse 11

  • 04.07.10, 18:12
Ядро, которое идет вместе с дистрибутивом OpenSuSe
11
, достаточно компактное и неплохо напичкано всякими примочками.
Но если есть желание выжать из своей системы максимум возможностей, без
пересборки ядра не обойтись.

Для начала надо установить пакет
kernel-source через Yast. Исходники ядра лягут в свои директории, и
создастся симлинк на эти исходники - /usr/src/linux.

После
этого выполняем следующие команды:

cd /usr/src/linux
make
mrproper


make mrproper создает такую же конфигурацию для
компиляции ядра, которая сейчас используется в системе. Это очень
удобно, из нее всего лишь надо будет выкинуть лишее или добавить
желаемое.

make menuconfig

Это самый отвественный
этап. Здесь выкидывается всякая ненужная хрень. Например, я собирал ядро
для своего ноутбука. Там была масса всякой ненужной гадости, которая
совершенно точно не пригодится на нем - поддержка RAID-массивов,
виртуализация и многое другое. Если эти фичи поотключать, ядро
становится меньше и соответственно, при использовании облегченного ядра
остается больше ресурсов для других процессов. Здесь еще важно поменять
название ядра. Если оно именовалось как default, то лучше его
переименовать, например, в mykernel001. Потому что при выходе нового
ядра kernel-default Yast просто-напросто перепишет облегченное ядро
новой версией.

Дальше я делаю вот что:

make rpm

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

rpm -ivh
kernel-2.6.25.160.1-2.i386.rpm
mkinitrd


После этого
остается только поправить конфиг загрузчика (grub или lilo), чтобы была
возможность выбрать версию ядра, с которой будет загружаться система.
Сразу отказываться от старого проверенного ядра не стоит, вдруг при
сборке ядра отключили что-то лишее и какое-нибудь устройство перестало
работать. Поэтому не исключено, что ядро придется пересобирать несколько
раз для того, чтобы достичь оптимальной производительности системы.

Работа с ядром посредством /proc

  • 24.06.10, 03:23
Большинство из рассмотренных нами файлов из каталога /proc доступны

только на чтение. Тем не менее файловая система /proc предоставляет файлы для взаимодействия с ядром доступные на запись. Помещение информации в такие файлы изменяет состояние ядра и поэтому это надо делать очень аккуратно. Эти файлы нахдятся в каталоге /proc/sys.

В каталоге /proc/sys/kernel находится информация общего плана для ядра. Соответственно в /proc/sys/kernel/{domainname, hostname} находится информация о доменном имени и host имени, которую Вы можете изменить.

$ hostname machinename.domainname.com $ cat /proc/sys/kernel/domainname domainname.com $ cat /proc/sys/kernel/hostname machinename $ echo "new-machinename" > /proc/sys/kernel/hostname $ hostname new-machinename.domainname.com Таким образом изменив файл в файловой системе /proc мы можем поменять hostname. Много данных для настройки находится в /proc/sys/kernel/. Повторюсь, невозможно в заметке рассмотреть все файлы, думаю Вам самим будет интересно повнимательней посмотреть на эти каталоги. Еще один интересный каталог /proc/sys/net. В нем Вы можете произвести сетевые настройки, например спрятать Ваш компьютер в сети. $ echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all Запретив ответы на icmp_echos мы спрятали компьютер. Наша машина не будет отвечать на команды "ping" других компьютеров. $ ping machinename.domainname.com no answer from machinename.domainname.com Вернуть прежнее состояние можно следующим образом $ echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all В каталоге /proc/sys еще много возможностей для настройки системы. Более подробная информация находится в [1] и [2].   Вывод Файловая система /proc обеспечивает файловый интерфейс к внутренним структурам Linux. С ее помощью можно узнать полезную информацию и настроить систему. Знание этой файловой системы и умение применить эти знания - большой плюс в работе с ОС Linux.

Как создать шифрованный туннель используя SSH

  • 23.06.10, 21:52


ssh dmzserver -R 9999:mirrorserver:80
ssh -R 9999:localhost:80 dmzserver
ssh -2 -N -f -L 2110:mail.example.com:110 user@ssh-server.example.com

IP фрагменты IPF

  • 22.06.10, 12:52

IP фрагменты - плохая новость. Недавнeе исследование показало, что IP фрагменты несут большую угрозу пакетам IP фильтрации, если они содержат правила, которые полaгаются на данные, которые могут быть распределены поперек фрагментов.

По отношению к этому пакетному фильтpу, угроза состоит в том, что поле флага TCP пакета может быть во втором или в третьем фрагменте или, возможно, в первом.

Чтобы отфильтровать эти напасти, возможно отсеивать такие пакеты:

# # блокируем все IP фрагменты # block in all with frag

Может возникнуть проблема, когда фрагментация пакетов не запланированна, но все равно может быть решена следующим правилом:

# # блокировать все короткие IP фрагменты (т.е. маленькие пакеты для сравнения) # block in proto tcp all with short

Создание собственного установочного CD OpenBSD 3.8

  • 22.06.10, 12:46




Для создания установочного диска OpenBSD, настроенного "под себя", как
описывается в документации,
нам необходимо создать пакет site*.tgz (где * - версия ОС), также Вы
можете использовать скрипты install.site/upgrade.site.


siteXX.tgz также, как и другие установочные пакеты (base38.tgz,
comp38.tgz и др.) представляет собой сжатый gzip tar-архив (при
распаковке исполняется tar -xzpf). Пакет позволяет пользователю
добавлять или заменять файлы, установленные в стандартных пакетах и
таким образом создать свой инсталляционный (или upgrade) диск.

siteXX.tgz может использоваться, например, для:
  • изменения (замены) в установленную OpenBSD. Если Вы хотите
    произвести изменения в системе, Вы просто выбираете siteXX.tgz при
    повторном запуске инсталляции, и все ваши изменения скопируются в новую
    систему.
  • Создать ряд каталогов, содержащихся в siteXX.tgz файл, с
    необходимыми файлами.
  • При установке произвести копирование файлов с Вашими настройками,
    которые Вы обычно указываете после установки, например
    /pf.conf, /var/www/conf/httpd.conf, /etc/rc.conf.local,
    и т.д.

На последнем этапе установки системы запускаются сценарии install.site/upgrade.site.
Обратите внимание, скрипты запускаются из загруженной файловой системы,
а установливаемая система примонтирована к /mnt. Скрипты при
установке
исполняются в однопользовательском режиме в chroot. Это следует учесть
при написании скриптов - скрипт должен быть написан для исполнения в
"обычном" корне системы. Скрипт install.site должен быть помещен в
siteXX.tgz файле, а upgrade.site может быть размещен в корневом каталоге
перед обновлением либо в siteXX.tgz.

Скрипты могут использоваться, например, для:
  • Удаления файлов, которые установлены, но Вам не нужны.
  • Удалить/изменить/установить пакеты.
  • Сделать бэкап-архив системы перед включением ПК в сеть.
  • Использовать rdate ,чтобы установить системное время.

Комбинация siteXX.tgz и install.site/upgrade.site
позволяет пользователю
создать свой собственный дистрибутив, разворачивающий рабочий сервер или
рабочую станцию за минимальное время и требующий минимальных настроек.


В данном случае мы рассмотрим в качестве примера процесс создания
собственного русифицированного дистрибутива OpenBSD 3.8.


Для создания собственного дистрибутива:

1) Создаем файл site38.tgz, в данном случае с необходимыми для
русификации изменениями:


Устанавливаем OpenBSD. Архивируем каталоги, в которых предполагаются
измения. Например, /etc, /usr, /var . Вносим
необходимые изменения в
систему, настраиваем. С помощью diff смотрим, какие изменения произошли.
Переносим измененные файлы в рабочий каталог с сохранением исходного
дерева.


Создаем site38.tgz. При установке системы siteXX.tgz
устанавливается
после установки всех пакетов. Если указанные файлы отсутствуют, то они
копируются. Присутствующие файлы заменяются на имеющиеся в siteXX.tgz .
Для примера я провел русификацию системы. Изменения произошли только в
/etc/rc.local, /etc/skel/.inputrc и /etc/skel/.login.

    # cd /tmp
    # mkdir etc; mkdir etc/skel
    # cp /etc/rc.local /tmp/etc
    # cp /etc/skel/.inputrc /tmp/etc/skel
    # cp /etc/skel/.login /tmp/etc
    # tar -zcvf site38.tgz etc


Наш файл site38.tgz с русификацией готов. Пример готового файла можно
взять http://unixman.ru/site38.tgz.
Русификация будет работать при
выборе в качестве шелла csh или после установки bash и применения в
качестве оболочки. Русифицированы будут консоли кроме 0-й - она
системная и не русифицируется.


В принципе, возможно подготовить siteXX.tgz таким образом, что он будет
содержать все необходимое для инсталяции рабочей системы и при установке
системы выбирать только ядро и этот пакет, отказавшись при установке от
инсталляции всех остальных. Пример создания минисистемы для роутера с
флеш-диском можно посмотреть на
http://www.blackant.net/other/docs/unpuffed/.
Флеш-диск можно
изготовить согласно инструкции на
http://www.openhardware.ru/modules/arms/view.php?w=art&idx=30&page=1
или
заказать готовую платформу для роутера/файервола на http://www.kd85.com/
, которая будет весьма хорошей и экономичной альтернативой неразумно
дорогим продуктам от Cisco Systems.


2) Создаем следующую структуру каталогов:

    for_iso
    +-> 3.8
    +-> i386



Командами:


    # mkdir /tmp/for_iso; mkdir /tmp/for_iso/3.8; mkdir /tmp/for_iso/3.8/i386
    # cd /tmp/for_iso


Выкачиваем с ftp-сервера необходимые файлы. Чтобы не перегружать
основной ftp-сервер OpenBSD в Калгари, нагрузка на который весьма
значительна, лучше воспользоваться одним из зеркал.

    # wget -c ftp://ftp.de.openbsd.org/3.8/ftplist
    # wget -c ftp://ftp.de.openbsd.org/3.8/root.mail
    # wget -c ftp://ftp.de.openbsd.org/3.8/ports.tar.gz
    # wget -c ftp://ftp.de.openbsd.org/3.8/src.tar.gz
    # wget -c ftp://ftp.de.openbsd.org/3.8/sys.tar.gz
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/cdrom38.fs


указанный файл
можно использовать только для платформ i386 или AMD64, для других
платформ надо использовать cd38.iso

Переходим в директорию 3.8/i386

    # cd 3.8/i386
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/INSTALL.i386
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/INSTALL.linux
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/base38.tgz
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/bsd
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/bsd.mp
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/bsd.rd
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/cd38.iso
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/comp38.tgz
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/cdboot
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/cdbr
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/etc38.tgz
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/floppy38.fs
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/floppyB38.fs
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/floppyC38.fs
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/game38.tgz
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/man38.tgz
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/misc38.tgz
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/pxeboot
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/xbase38.tgz
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/xetc38.tgz
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/xfont38.tgz
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/xserv38.tgz
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/xshare38.tgz
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/CKSUM
    # wget -c ftp://ftp.de.openbsd.org/3.8/i386/MD5


копируем подготовленный нами файл

    # cp /tmp/site38.tgz .


считаем контрольные суммы и вносим согласно подсчитанных сумм изменения
в файлы CKSUM и MD5

    # cksum site38.tgz >> CKSUM
    # md5 site38.tgz >> MD5


Изготавливаем образ

    # cd /tmp; mkisofs -vrTJV OpenBSD38 -b /tmp/for_iso/cdrom38.fs -c boot.catalog -o /tmp/OpenBSD38.iso for_iso


Записываем

    # cdrecord -v dev=/dev/rcd0c /tmp/OpenBSD38.iso


В процессе установки системы в списке пакетов для установки появится
site38.tgz , который надо будет пометить для установки.


PS. Все выше изложенное гораздо лучше делается :) при прослушивании
"гимна" OpenBSD 3.9
ftp://ftp.openbsd.org/pub/OpenBSD/songs/song39.mp3
, который как
всегда подготовила группа музыкантов из Калгари во главе с замечательным
дизайнером и музыкантом Ty Semaka. Tyron James Thomas Bowney Semaka
http://www.tysemaka.com/ также
автор всего дизайна и музыки OpenBSD .


http://www.opennet.ru/base/sys/make_cd_openbsd.txt.html

Как запретить пользователям смотреть чужие процессы OpenBSD

  • 20.06.10, 06:40
Любой пользователь в системе может посмотреть список процессов с помощью команды ps(1). Чтобы граничить просмотр процессами, работающими с правами пользователя, подавшего команду можно воспользоваться загружаемым модулем hideproc, который можно скачать отсюда.

Сначала следует собрать и установить модуль:

# make depend && make && make install Помните что для сборки загружаемых модулей необходимы исходные тексты ядра системы, которые должны находиться в /usr/src/sys.

Далее нужно добавить следующую строку в файл /etc/rc.securelevel:

[ -f /usr/lkm/hideproc.o ] && modload /usr/lkm/hideproc.o По умолчанию модуль разрешает просмотр чужих процессов только для пользователей, входящих в группу wheel. Чтобы изменить настройки модуля добавьте в /etc/rc.local следующие строки: # # Пользователи, входящие в группу staff, имеют право смотреть чужие процессы. # if [ -c /dev/hideproc -a -x /usr/local/sbin/hideprocctl ]; then /usr/local/sbin/hideprocctl staff fi Можно также задать обратное условие - запретить просмотр чужих процессов пользователям, входящим в заданную группу: # # Пользователи, входящие в группу users, не имеют права смотреть чужие процессы. # if [ -c /dev/hideproc -a -x /usr/local/sbin/hideprocctl ]; then /usr/local/sbin/hideprocctl \!users fi

OpenBSD установка BASH

  • 10.06.10, 12:49
Начиная цикл статей о системе хочу предупредить , если в других BSD логика понятна , а также не мало полезной информации можно найти на блогах или просто на сайте разработчика ,  то здесь все сложнее (конечно много всего можно найти , например ман поинсталяции и тд., но более углубленная настройка в ваших руках , а также английского , уровень которого зависит только от Вас) , логика присутствует и понятной становится после "Курса молодого бойца" .
Итак начнем :

Управление пакетами в OpenBSD производится главным образом при помощи
команд pkg_add (для установки и/или обновления), pkg_delete
(для удаления) и pkg_info (для просмотра информации об
установленных пакетах и о каждом из них в частности). Для этих команд
также существуют псевдонимы: pkg add, pkg delete, pkg
info.

Перед тем, как начать работу с пакетами, нужно указать переменную PKG_PATH.
Это путь к каталогу (расположенному на диске либо в Сети), где
находятся откомпилированные и готовые к использованию пакеты (например, /mnt/cdrom/„uname
-r“/packages/„machine -a“/ или ftp://your.ftp.mirror/pub/OpenBSD/„uname
-r“/packages/„machine -a“/). Делается это следующей командой:

$ export PKG_PATH=ftp://ftp.gamma.ru/pub/OpenBSD/„uname -r“/packages/„machine -a“/

Эту строку полезно добавить в ~/.profile, чтобы каждый раз не
вводить её вручную. Теперь для установки пакета воспользуемся командой pkg_add

Ставим BASH:

$ export PKG_PATH=ftp://mirror.planetunix.net/pub/OpenBSD/4.1/packages/`machine
-a`/
в конце не забываем / (понимаю непривычно но что поделаешь )
$ sudo pkg_add -i -v bash
# pkg_add -i -v bash

вывод :
parsing bash-3.2
Dependencies for bash-3.2 resolve to: gettext-0.14.6, libiconv-1.9.2p3 (todo: libiconv-1.9.2p3,gettext-0.14.6)
bash-3.2:parsing libiconv-1.9.2p3
bash-3.2:libiconv-1.9.2p3: complete
bash-3.2:parsing gettext-0.14.6
Dependencies for gettext-0.14.6 resolve to: expat-2.0.0, libiconv-1.9.2p3 (todo: expat-2.0.0)
bash-3.2:parsing expat-2.0.0
bash-3.2:expat-2.0.0: complete
bash-3.2:gettext-0.14.6: complete
Shell /usr/local/bin/bash appended to /etc/shells
bash-3.2: complete

чтобы включить bash

$ bash