morontt.info

UbuntuUbunutu 16.04 и F2FS

Установил на ноутбук последнюю LTS версию Убунты в экспериментальных целях и был слегка разочарован тем, что не обнаружил в инсталляторе возможность выбора файловой системы F2FS, которая изначально разрабатывалась для flash-памяти и просто доктор прописал использовать её с SSD-накопителями. Однако немного поразмыслил и решил поместить домашнюю директорию на отдельный раздел с F2FS, ведь почти все мои файлы и манипуляции с ними происходят именно в этой папке.

Для начала нужно загрузиться с LiveCD, или, скорее, с LiveUSB, и отбить свободное место от основного корневого раздела, если это не было сделано при инсталляции. Делается довольно просто с использованием того же GParted. Сразу отформатировать в F2FS, скорее всего, не получится. Я оставил раздел неотформатированным. После перезагружаемся обратно в установленную Ubuntu.

Теги: linux ubuntu f2fs

PHPАутентификация через системных пользователей линукс

Предположим, что возникла потребность аутентифицировать пользователей PHP-приложения посредством уже существующих в системе пользователей. Тогда для решения этой задачи можно заюзать PAM (Pluggable Authentication Modules). Если в двух словах, то через эту систему производятся манипуляции с пользователями и их паролями такими программами, как login, passwd или su. Если нужно больше информации, тогда вам сюда, например.

Описываемые ниже действия происходят в Ubuntu 14.04. В той же убунте 12.04 имелся готовый пакет php5-pam-auth, но позже его не стало.

Ставить расширение будем из PECL, вот оно. Предварительно доустановим пару пакетов, если они ещё не установлены. Приступим:

sudo apt-get install php5-dev libpam0g-dev
sudo pecl install PAM

Без php5-dev будет ругаться, что нету phpize, а без libpam0g-dev будет появляться гадостная ошибка install the the PAM library or use --with-pam=DIR to specify the location.

После успешной компиляции добавляем пару строк в php.ini

extension=pam.so
pam.servicename="php"

И добавляем соответствующий сервис для PAM

sudo su

cd /etc/pam.d
ln -s login php

Готово :)

PHP + PAM

P.S. Возможен ещё такой момент. При работе, например, через Apache или другой веб-сервер, функция pam_auth будет возвращать ложный результат независимо от правильности логина/пароля. Связано это с тем, что пользователь, от которого работает веб-сервер, не имеет доступ к файлу /etc/shadow. Возможно, что можно каким-то образом донастроить сервис php для PAM, с этим я разбираться не стал, а применил более простое решение - добавил пользователя апача в группу shadow, хоть и понимаю, что почти наверняка этим действием проделал ещё одну дыру в безопасности :)

sudo usermod -aG shadow www-data
Теги: php linux ubuntu auth

UbuntuNode.js версии 0.12 и убунта

Как-то раньше я уже описывал установку последней версии Node.js на Ubuntu, но приключилась печалька. Беда, собственно, заключается в том, что в описанном репозитории последняя версия ноды 0.10.37, а проект требует минимум 0.12.

Но выход есть всегда :) Node.js уже установлен, нужные переменные окружения прописаны, поэтому чтобы исключить возню с поисками других репзиториев, просто скачаем одну папочку и поправим пару симлинков:

wget http://nodejs.org/dist/v0.12.7/node-v0.12.7-linux-x64.tar.gz 
tar xvzf node-v0.12.7-linux-x64.tar.gz

sudo su
cd /usr/bin

mv npm npm_old
mv nodejs nodejs_old
ln -s /path/to/node-v0.12.7-linux-x64/bin/node nodejs
ln -s /path/to/node-v0.12.7-linux-x64/lib/node_modules/npm/bin/npm-cli.js npm

На этом пока всё.

Теги: linux ubuntu nodejs

LinuxЗапуск MySQL-сервера после падений

Так уж вышло, что на одном из подконтрольных мне серверов, то ли от нехватки памяти, то ли от всплесков нагрузки, то ли от того и другого сразу, регулярно падает сервер БД MySQL. Где-то раз в неделю или две. Особенно нехорошо, когда владелец сайтов, размещённых на этом сервере, звонит в связи с этим рано утром или ночью, так что доктор прописал процесс подъема БД автоматизировать.

Первое решение нарисовалось при переписке с известным крутокодером. И имя этого решения monit, однако картина с ним принципиально не поменялась, периодические падения не закончились. Может быть чего-то в доках не дочитал, может руками кривыми конфиги редактировал, но не срослось. Причём в тестовых остановках мускула монит отрабатывал отлично, а в реальности, видимо, не всегда.

Теги: mysql linux cron bash

LinuxМонтирование диска медиаплеера в линуксах

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

Первый пациент, это Popcorn Hour A-300, про него я когда-то писал тут. Аппарат был хороший, но сильно долго не прожил по моей вине - глюкнул винт, а я, находясь под воздействием пива, разобрал и собрал плеер, вывихнув при этом разъём SATA из платы. Ну да ладно, то другая история, а сейчас монтирование. По NFS.

sudo mount -t nfs -o vers=3 192.168.1.169:/share ~/path/to/A300

Причём без этой опции vers=3 не получалось, вечер провозился точно, пока где-то не нагуглил.

Второй медиаплеер Dune HD TV-303D. Пришёл на смену первому и работает по сей день. NFS в нём я не обнаружил, примонтировал используя Samba

sudo mount -t cifs -o guest,rw,uid=morontt,gid=morontt //192.168.1.171/dunehdd ~/path/to/DuneHD

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

Возможно, что каждый раз выполнять команду или запускать скрипт с ней внутри будет неудобно, но если устройства никуда не собираются перемещаться друг относительно друга, то можно прописать подключение в /etc/fstab, а нужную строку подсмотреть в /etc/mtab, когда устройство примонтировано. Что-то вроде такой строки (может, ещё опции придётся подкорректировать):

//192.168.1.171/dunehdd /home/morontt/path/to/DuneHD cifs rw,uid=morontt,gid=morontt 0 0

P.S. Монтирование по протоколу samba может не удаться сходу и будет ругаться на неизвестную файловую систему. В таком случае поможет установка пакета cifs-utils, т.е.:

sudo apt-get install cifs-utils

UbuntuУстановка последних версий Node.js и npm

Просто памятка. Надоело уже искать по интернету.

Делаем раз:

# ниже по ситуации, в зависимости от дистрибутива,
# если нет команды apt-add-repository
#
# sudo apt-get install python-software-properties
# sudo apt-get install software-properties-common

sudo apt-add-repository ppa:chris-lea/node.js
sudo apt-get update

Делаем два:

sudo apt-get install nodejs

И готово. Проверено на Ubuntu 14.04 LTS и 12.04 LTS :) Если не ошибаюсь, то npm установится автоматически с nodejs. Ежели не установился, то ещё одна строчка в консоли:

sudo apt-get install npm

RaspbianRaspbian + Node.js на Raspberry Pi

Приобрёл себе этот микрокомпьютерчик и замыслил для начала поднять на нём небольшой сайт, а чтобы скучно не было, задумал этот сайт написать на JavaScript с серверной стороны. Да и просто для разминки мозгов.

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

sudo apt-get install nodejs npm

Однако стоило посмотреть версию установленных паркетов, так сразу и стало печально. И дело не только в циферках (0.6.19 для nodejs и 1.1.4 для npm), тот же модуль forever уже не запустишь. Хотя и сам Debian тоже не радует дремучестью своих пакетов, ну да ладно, хотят люди стабильности - пусть им будет стабильность :) А я пошёл гуглить.

ApacheНастройка HTTPS в Apache

Нового здесь ничего не будет, всё это миллионы раз описано в документации и подобных записях по блогам. Так что оставлю здесь эту заметку для себя, чтобы не искать каждый раз, когда это потребуется.

В двух словах - что такое HTTPS и с чем его едят.

HTTPS - это расширение протокола HTTP, поддерживающий шифрование. Данные, передаваемые подобным образом, шифруются с использованием SSL или TLS.

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

UbuntuУдаление драйвера nVidia из командной строки

Не успел я ещё нарадоваться этой операционной системе, как после очередного обновления приключился облом. Обновляюсь, перезагружаюсь и чёрный экран с бесконечно мигающим курсором. Обновилось много чего, включая ядро, и происходил сей процесс довольно долго, но внутренний голос подсказал, что проблему надо искать в видеодрайвере. И не ошибся, как выяснилось спустя час колупаний.

Всех произведённых манипуляций описывать не буду, только вкратце о тех, что привели к оживлению системы.

1 2