Показаны сообщения с ярлыком debian. Показать все сообщения
Показаны сообщения с ярлыком debian. Показать все сообщения

вторник, 29 марта 2022 г.

Debian 11 и добавление пути в $PATH

Вообще, этот $PATH кто только не модифицирует. Насколько я понял, настройка переменных среды выглядит так:

  1. выполняются скрипты /etc/environment и /etc/profile
  2. выполняются скрипты *.sh из папки /etc/profile.d/
  3. если в домашнем каталоге пользователя есть скрипты ~/.bash_profile или ~/.bash_login, выполняются они
  4. если вышеуказанных скриптов нет, выполняется ~/.profile

Но вся эта кухня бесполезна в эмуляторе терминала, если не поставить галочку "Edit -> Preferences -> Run command as login shell".

четверг, 15 января 2015 г.

Debian: обновление с 6.0 (squeeze) до ...

А вот не знаю, до чего. Попался мне на глаза мануал Обновление с Debian 6.0 (squeeze), и решил я, что пора.

Ну, ясное дело, не обошлось без приключений. Замена в /etc/apt/sources.list всех "squeeze" на "stable" и выполнение простых команд:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
привело к тому, что третья команда вывалилась с примерно такой ошибкой:
dpkg: предупреждение: «ldconfig» отсутствует в каталогах, перечисленных в PATH, или не является исполняемым
dpkg: предупреждение: «start-stop-daemon» отсутствует в каталогах, перечисленных в PATH, или не является исполняемым
dpkg: ошибка: в каталогах PATH не найдено 2 ожидаемые программы или исполняемых файла
Замечание: В PATH суперпользователя обычно должны присутствовать /usr/local/sbin, /usr/sbin и /sbin
E: Sub-process /usr/bin/dpkg returned an error code (2)
Что с этим делать, совершенно непонятно. Правда, удалось обойти эту непонятную ошибку командой:
su
apt-get dist-upgrade
но, чует моё сердце, ещё придется править /etc/profile.

Ладно, обновление прошло, пытаюсь запустить иксы. Иксы стартуют, но ни клавиатура (PS/2), ни мышь (тоже PS/2) не работают. Мышь, правда, светится, а вот на клавиатуре не зажигаются даже лампочки. Опять лезу гуглить. Натыкаюсь на совет прописать в файле /etc/X11/xorg.conf такое:
Section "ServerFlags"
    Option "AutoAddDevices" "False"
EndSection
Такого файла у меня нет. Ладно, создаю, прописываю, перезагружаюсь. Мышь заработала, клавиатура - нет. Гуглю дальше. Оказывается, надо установить пакеты:
su
apt-get install xserver-xorg-input-kbd
apt-get install xserver-xorg-input-mouse
второй из них, правда, у меня уже есть, наверно, поэтому мышь заработала раньше клавиатуры. В общем, поставил xserver-xorg-input-kbd, пока больше проблем не заметил. Но наверняка ещё будут.

воскресенье, 14 апреля 2013 г.

Debian: устанавливаем I2P

Захотелось тут подключиться к I2P. Нет, мамаша, дети могут не выходить. Нет, не весна. Просто совпало. В общем, установка всего этого богатства расписана тут. Вкратце:

1. Выполняем команду:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EB2CC88B

2. Создаём файл /etc/apt/sources.list.d/i2p.list со строками:
deb http://ppa.launchpad.net/i2p-maintainers/i2p/ubuntu natty main 
deb-src http://ppa.launchpad.net/i2p-maintainers/i2p/ubuntu natty main

3. Выполняем команду:
sudo apt-get update

4. Инсталлируем требуемый софт:
sudo apt-get install i2p

Дальше конфигурируем способ запуска роутера командой
sudo dpkg-reconfigure i2p
прописываем в браузере прокси для HTTP - 127.0.0.1:4444, и для HTTPS - 127.0.0.1:4445, и вроде как всё.

Но этого оказалось мало.

Во-первых, захотелось, чтобы эта штука жила на отдельном компе, который у меня "сервер" для всяких tor-ов, торрентов и т.п. Выяснилось, что по умолчанию i2p-роутер сконфигурирован так, чтобы принимать клиентские подключения только с 127.0.0.1. Однако, если зайти в админку,
http://localhost:7657/i2ptunnel/edit.jsp?tunnel=0
то можно там изменить настройки точки доступа на сетевой интерфейс 192.168.xxx.xxx.

Во-вторых, захотелось, чтобы Opera пользовалась этой штукой хитро: на обычные сайты ходила по-прежнему через tor, а на сайты с именами вида *.i2p - через этот новый i2p-роутер. Оказывается, нужно отредактировать файл ~/.opera/override.ini примерно так:
[Overrides]
...
i2p

...

[i2p]
Proxy|Use HTTP=1
Proxy|HTTP server=192.168.xxx.xxx:4444
Proxy|HTTPS server=192.168.xxx.xxx:4445

Вот тогда стало всё ок.

вторник, 1 января 2013 г.

Debian: настройка apache2 для работы с SSL

Собственно, вот здесь всё описано подробно:
Создание самоподписного SSL-сертификата и настройка хоста Apache 2 для работы по https
Apache 2 с SSL/TLS: Шаг за Шагом

Вкратце:

Включаем в апаче mod_ssl:
sudo a2enmod ssl

Создаем сертификат:
openssl genrsa -des3 -out server.key.secure 1024
openssl rsa -in server.key.secure -out server.key
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Копируем сертификат в хранилище:
sudo cp server.crt /etc/ssl/certs
sudo cp server.key /etc/ssl/private

В конфиг сайта добавляем строки:
SSLEngine on
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key

Проверяем, что в ports.conf указано слушать порт 443.

Перезапускаем апач.

вторник, 26 июня 2012 г.

Debian: осваиваю git

Решил давеча приобщиться к прекрасному. Ну в самом деле, кругом XXI век, а я до сих пор как школьник все свои проекты храню в папочках и раз в неделю архивирую. Захотелось по-взрослому, чтобы была система контроля версий, доступ к репозиторию по http и прочее - в общем, сам пока не знаю толком, чего мне доселе не хватало.

Первый же заплыв привел на github.com, а от него - к git. Командная строка, всё такое черно-серое, юниксоидное, бесплатное - словом, понравилось. Единственная проблема: как поднять репозиторий, доступный по http (у гитхаба какие-то ограничения, да и вообще прикольно же).

К счастью, нашлась толковая инструкция. Вкратце последовательность действий такова:

1. Конфигурируем apache2. Добавляем в /etc/apache2/sites-available/default следующие строки:
SetEnv GIT_PROJECT_ROOT /путь-до-репозитория
SetEnv GIT_HTTP_EXPORT_ALL

ScriptAliasMatch \
 "(?x)^/git/(.*/(HEAD | info/refs | objects/(info/[^/]+ | [0-9a-f]{2}/[0-9a-f]{38} | \
                    pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
                    git-(upload|receive)-pack))$" \
                    "/usr/lib/git-core/git-http-backend/$1"

<Directory /usr/lib/git-core/>
    Options +ExecCGI
    Order Allow,Deny      
    Allow from all
</Directory>

<Location /git>
    AuthType Basic
    AuthName "Private Git Access"
    AuthUserFile /etc/apache2/authusers
    Require valid-user
</Location>

2. Добавляем в файл с разрешенными пользователями нового пользователя по имени username командой:
htpasswd -c /etc/apache2/authusers username

3. Перезапускаем апач командой:
sudo /etc/init.d/apache2 restart

4. Настраиваем репозиторий. Создаем внутри каталога /путь-до-репозитория очередную папочку для проекта myProject, переходим в неё и выполняем волшебную команду:
git init --bare

5. Раздаем на каталог myProject права для учетной записи, под которой работает апач:
sudo chown -R www-data myProject
sudo chgrp -R www-data myProject

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

1. Устанавливаем и настраиваем git на клиентской машине. Вводим имя пользователя (username), его e-mail (это будет отображаться при просмотре истории коммитов) и, если нужно, прокси:
git config --global user.name username
git config --global user.email mymail@mymail.ru
git config --global http.proxy http://myproxy:8888

2. Можно еще указать, чтобы git кэшировал на какое-то время пароли:
git config --global credential.helper 'cache --timeout=3600'
(честно говоря, у меня не сработало; приходится каждый раз при выполнении команд git push, git pull вводить пароль)

3. Клонируем нужный проект в локальный каталог командой:
git clone http://username@host/git/myProject

4. Меняем в проекте всё, что нам надо, и скармливаем изменения git-у:
git add мой-измененный-файл

5. Коммитим изменения в проекте:
git commit -m "описание изменений"

6. Заливаем измененный проект обратно на сервер:
git push origin master

Кстати, вот тут лежит хороший учебник.

понедельник, 21 ноября 2011 г.

Как настроить ejabberd в debian

Вот так.

Вкратце:

1. Ставим сервер apt-get install ejabberd

2. Правим /etc/ejabberd/ejabberd.cfg. Если по минимуму, то:
% задаем админский аккаунт (формат такой: {user, имя, хост})
{acl, admin, {user, "huh-muh", "mydomain.ru"}}.

% задаем имя хоста
{hosts, ["mydomain.ru"]}
и вроде как всё остальное нормально прописывается и "из коробки".

3. Создаем пользователей (по умолчанию регистрация из клиента запрещена. Чтобы включить её, нужно изменить в конфигах deny в строке {access, register, [{deny, all}]} на allow):
sudo /usr/sbin/ejabberdctl register huh-muh mydomain.ru mypassword

UPD 2013-01-02:
Оказалось тут, что истек срок годности сертификата. Продлил так:
openssl genrsa -des3 -out ejabberd.key.secure 1024
openssl rsa -in ejabberd.key.secure -out ejabberd.key
openssl req -new -key ejabberd.key -out ejabberd.csr
openssl x509 -req -days 365 -in ejabberd.csr -signkey ejabberd.key -out ejabberd.crt
cat ejabberd.key ejabberd.crt > ejabberd.pem
sudo cp ejabberd.pem /etc/ejabberd/

вторник, 15 ноября 2011 г.

Установка Debian 6 с USB-флэшки

Как-то с испугу умудрился записать дебиановский установочный исошник на флэшку. По-моему, это было сделано не как советуют мануалы, а командой:
sudo dd if=debian-live-6.0.3-amd64-lxde-desktop.iso of=/dev/sdh bs=10240 conv=sync

Правда, утверждается, что это исошник такой, специальный, пригодный как для флэшек, так и для дисков, так что никакого чуда нет.

Узнать правильное название флэшки (вдруг не /dev/sdh, а что-то другое) можно командой dmesg.

Вообще-то изначально команда была подсмотрена у FreeBSD, но та из коробки почему-то не предложила сделать локаль UTF-8, поэтому ставить её расхотелось.

воскресенье, 1 мая 2011 г.

Обновление Debian с Lenny до Squeeze

Согласно красивой старинной легенде можно обновить свой рабочий, но "морально устаревший" Debian при помощи следующей последовательности действий:
1. меняем в файле /etc/apt/sources.list все вхождения lenny на squeeze (в vim это делается так :%s/lenny/squeeze/gi)
2. обновляем список пакетов: sudo apt-get update
3. обновляем менеджер пакетов: sudo apt install apt dpkg aptitude
4. обновляем систему: sudo apt-get dist-upgrade
и, казалось бы, всё...Фигушки. Есть другая красивая легенда, что на этом всё только начинается.

Перво-наперво, строка:
deb http://volatile.debian.org/debian-volatile squeeze/volatile main contrib non-free
оказывается, не работает, и нужно использовать:
deb http://ftp.debian.org/debian squeeze-updates main

Далее начались чудеса при обновлении. А именно, apt-get чего-то там пошерстил часа два, а потом тихо умер, пожаловавшись на "слишком много ошибок". Выяснилось, что все беды - из-за заглючившего shared-mime-info. Глючил он примерно так:
Unknown media type in type 'all/all'
Unknown media type in type 'all/allfiles'
Unknown media type in type 'uri/mms'
Unknown media type in type 'uri/mmst'
Unknown media type in type 'uri/mmsu'
Unknown media type in type 'uri/pnm'
Unknown media type in type 'uri/rtspt'
Unknown media type in type 'uri/rtspu'
Unknown media type in type 'fonts/package'
Unknown media type in type 'interface/x-winamp-skin'
Окаалось, это - известный баг. Решением было найти в /usr/share/mime/packages/kde.xml все упоминания соответствующих типов и поудалять их. Правда, после этого ошибка всё равно осталась, но зато одна:
update-mime-database.real: undefined symbol: g_malloc0_n
Эту проблему удалось не решить, но обойти, прописав в начало скрипта:
/var/lib/dpkg/info/shared-mime-info.postinst
волшебную команду exit 0
(как оказалось впоследствии, g_malloc0_n свидетельствует о том, что не сработало обновление пакета libglib2.0-0, а старая версия <= 2.24, и эту самую g_malloc0_n не содержит. Пришлось качать пакет вручную, удалять из /usr/lib/ упоминания о libglib и обновляться apt-get -f install новый_libglib.deb)

Зато у меня теперь есть Squeeze! С дикой текстовой консолью при загрузке (в середине процесса перескакивает с tty1 на tty5, говорят, лечится заменой в файле /etc/default/bootlogd строки BOOTLOGD_ENABLE=Yes на строку BOOTLOGD_ENABLE=No - нифига), с какой-то графической байдой в grub (правда, помогает вот эта подсказка), с тормозящим KDE или неработающим Xfce, а так всё хорошо, буду изучать дальше...

И, да! Я научился отключать и восстанавливать загрузку иксов по умолчанию:
update-rc.d -f gdm remove или update-rc.d -f kdm remove
update-rc.d -f gdm defaults или update-rc.d -f kdm defaults
соответственно.

воскресенье, 24 апреля 2011 г.

Настройка Huawei E1750 в Debian Lenny

Настройка Huawei E1750 в Debian Lenny. Ну, у меня e1550, но тоже проканало ^_^

вкратце:
1. смотрим с помощью команды lsusb, что модем вообще виден
2. устанавливаем libusb в соответствии с рекомендациями:
aptitude install tcl libusb-dev make gcc
3. стаскиваем с http://www.draisberghof.de/usb_modeswitch архивы usb-modeswitch и usb-modeswitch-data, распаковываем их и устанавливаем командой sudo make install
4. перезапускаем udev:
sudo invoke-rc.d udev restart
5. переподключаем модем и смотрим, что получилось, командой:
ls -l /dev/ttyUSB*
(у меня какого-то черта вместо /dev/ttyUSB0 получилось: /dev/ttyUSB_utps_modem)

Кстати, ещё, возможно, придется дать права на этот девайс: в /etc/udev/rules.d/50-udev-default.rules прописать примерно такое:
KERNEL=="ttyUSB_utps_modem", MODE="0666"
И применить правила командой:
udevadm control --reload-rules && udevadm trigger

понедельник, 25 января 2010 г.

Debian: Установка pure-ftpd

Хорошая статья про настройку pure-ftpd:
http://opennet.ru/base/net/linux_pureftp.txt.html
(а тут много интересных нюансов:
http://pureftpd.sourceforge.net/FAQ)

У меня, правда, дебиан, но тоже помогло. Вкратце:

1. Устанавливаем pure-ftpd. Из коробки эта штука будет пускать только под учетками, заведенными в системе, соответственно, в домашние каталоги этих учеток. Правда, это не помешает им шариться по всей файловой системе. Чтобы запереть пользователей в своих домашних каталогах, нужно создать файл /etc/pure-ftpd/ChrootEveryone со словом yes внутри (если же требуется запереть всех, кроме какой-то выделенной группы, следует вместо этого прописать её идентификатор в файле /etc/pure-ftpd/TrustedGID). Вообще, похоже, все настройки у этой штуки лежат по разным файлам с соответствующими именами(*). Непривычно как-то...

2. Для анонимного доступа нужны следующие вещи: учетная запись с именем ftp и слово no в файле /etc/pure-ftpd/NoAnonymous. С учетной записью я поступил следующим образом: создал, как это заведено в культурных домах, папки на чтение и запись:
mkdir /home/ftp/pubmkdir /home/ftp/incoming
раздал им права:
chmod -R 0777 /home/ftp/incomingchmod -R 0755 /home/ftp/pub
и создал пользователя с домашним каталогом /home/ftp:
/usr/sbin/useradd --home /home/ftp ftp

3. Для пассивного режима ещё можно указать интервал портов, по которым клиенты будут стучаться за данными, примерно так:
echo "40110 40210" > /etc/pure-ftpd/conf/PassivePortRange
Ну и не забываем прописать эти порты на роутере 8-)

4. Под дебианом не требуется, а вот под слакварью ещё приходилось запускать сервер командой:
pure-ftpd -4 -A -B -M -l unix -U 022:022 -O clf:/var/log/pureftpd.log
и добавлять эту команду в автозагрузку (/etc/rc.d/rc.local) с полным путем.

(*) Вот отсюда вытащил список этих имён. Ниже представлены они и соответствующие им параметры командной строки (полный список лежит тут):
-A     ChrootEveryone              no  # запереть всех, кроме рута в домашней директории
-a TrustedGID 10 # доверенная группа с этим номером может шариться везде по ФС
-b BrokenClientsCompatibility no # говорят, помогает клиентам, некорректно придерживающимся стандартам
-c MaxClientsNumber 10 # максимальное число клиентов
-B Daemonize yes # запуск в виде демона
-C MaxClientsPerIP 3 # максимальное число подключений с одного клиента
VerboseLog no
-z AllowDotFiles yes # разрешить читать файлы, начинающиеся с точки
-D DisplayDotFiles yes # показывать файлы, начинающиеся с точки
-e AnonymousOnly no # позволять только анонимный доступ
-E NoAnonymous yes # позволять доступ только зарегистрированным пользователям
SyslogFacility ftp
DontResolve no
-I MaxIdleTime 3600 # максимальное время простоя, после которого клиент отрубается
-l pam PAMAuthentication yes # способ аутентификации (есть ещё unix)
-L LimitRecursion 2000 8
-M AnonymousCanCreateDirs no # анонимные пользователи могут создавать каталоги
-m MaxLoad 4 # не позволяет перегружать сервер анонимными загрузками
-s AntiWarez yes # запрещает скачку файлов, загруженных анонимами (определяет такие файлы по их владельцу. если ftp, то считает его загруженным анонимом)
-u MinUID 100 # запрещает коннект пользователям с идентификатором меньше заданного (видимо, чтобы под рутом не коннектились)
-w AllowUserFXP yes # позволяет FXP протокол аутентифицированным пользователям
-W AllowAnonymousFXP no # позволяет FXP протокол анонимным пользователям
-x ProhibitDotFilesWrite yes # никто, кроме доверенной группы, не может писать файлы, начинающиеся с точки
-X ProhibitDotFilesRead no # запретить читать файлы, начинающиеся с точки
-r AutoRename no # переименовывает файл загружаемый файл (*.1, *.2 и т.п.), если файл с таким именем уже есть
-i AnonymousCantUpload yes # запрет анонимам загружать
-O AltLog clf:/var/log/pureftpd.log # записывает передачи файлов в заданный файл определенного формата (clf, stats и т.п.)
-R NoChmod no # запрещает делать команду chmod
-j CreateHomeDir yes # создает домашний каталог вновь создаваемым пользователям
-k MaxDiskUsage 99 # указывает в процентах, до какой степени может быть заполнен диск
-G NoRename no # запрет переименования файлов
-Z CustomerProof yes # не позволяет пользователем выстрелить себе в ногу chmod-ом
-4 IPV4Only yes # использовать только IPv4