Подключение NFS для чтения и записи обычным пользователем

9 апреля 2014
Рубрика: How-to, Linux
Теги: ,

Zeboton

Когда на NFS-сервере один основной пользователь и на компьютере, который выступает в роле NFS-клиента, тоже один пользователь, да ещё и входящий в список sudousers — всё просто: NFS-раздел подключается, используя sudo, UID и GID на NFS-сервере и NFS-клиенте совпадают, с правами на чтение и запись нет никаких проблем.

У меня же возникла ситуация, когда на NFS-клиенте был обычный пользователь (regular user) без доступа к sudo и он должен был уметь производить чтение и запись в подлючённом NFS-разделе. Назовём этого пользователя reguser. Также на этом компьютере ( NFS-клиенте ) был ещё один пользователь, который имел доступ к sudo. Назовём его: admuser.

Итак, передо мной стояло две задачи:

  1. Сделать так, чтобы reguser мог производить запись в файлы и директории на NFS-сервере.
  2. Сделать так, чтобы reguser мог сам подключать и отключать NFS-раздел.

Читать далее »

Автозапуск виртуальной машины в Citrix XenServer 6.2

3 марта 2014
Рубрика: Linux, vanoc.ru
Теги:

vanoc

Кратенько. Для 6 версии из XenCenter настроить автозапуск уже не получится, однако можно сделать из консоли.

Для начала добавляем эту возможность для пула.
# xe pool-list
uuid ( RO) : 8a3b99c9-c4e9-802c-1298-794d939fb999
# xe pool-param-set uuid=8a3b99c9-c4e9-802c-1298-794d939fb999 other-config:auto_poweron=true

Теперь для виртуалок, которым требуется автозапуск.
xe vm-list
xe vm-param-set uuid=... other-config:auto_poweron=true

MTP на примере Acer CloudMobile S500

1 февраля 2014
Рубрика: Arch, vanoc.ru
Теги:

vanoc

Потребовалось получить доступ к флешке подключенной в телефон Acer CloudMobile S500. Краткая выдержка арч вики с некоторыми комментариями.

Подключаем телефон к компу. В консоли смотрим результат вывода lsusb

% lsusb
...
Bus 001 Device 004: ID 0502:33aa Acer, Inc.
...

Вот и телефон.

Копируем или правим прям там же файл.
% sudo cp /usr/lib/udev/rules.d/69-libmtp.rules /etc/udev/rules.d/
% sudo vim /etc/udev/rules.d/69-libmtp.rules

Находим строки, в которых упоминается Acer, дублируем одну из них. Изменяем значения idVendor и idProduct на значения нашего аппарата.
# Acer CloudMobile S500
ATTR{idVendor}=="0502", ATTR{idProduct}=="33aa", SYMLINK+="libmtp-%k", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"

Затем
sudo udevadm control --reload
либо перезагружаемся.

Устанавливаем пакет для работы с mtp
sudo pacman -S mtpfs

Редактируем /etc/fuse.conf Раскомментируем строку
user_allow_other

Создадим какую-нибудь временную директорию и смонтируем в нее телефон
mkdir /tmp/YOURMOUNTPOINT
mtpfs -o allow_other /tmp/YOURMOUNTPOINT

Размонтируем
fusermount -u /tmp/YOURMOUNTPOINT

Для удобства можно создать алиасы в ~/.bashrc
alias android-connect="mkdir /tmp/YOURMOUNTPOINT && mtpfs -o allow_other /tmp/YOURMOUNTPOINT"
alias android-disconnect="fusermount -u /mnt/YOURMOUNTPOINT"

DLNA IPTV xupnpd

9 декабря 2013
Рубрика: Linux, Ubuntu, vanoc.ru
Теги: , ,

vanoc

Купили брату телевизор Sony Bravia. Выбирал специально, чтоб ТВ умел проигрывать много форматов видео и знал что такое DLNA. Однако упустил IPTV. Странно, но ТВ его совсем не умеет проигрывать. Удивительно, что Sony не позаботились об этом. В итоге IPTV таки удалось получить, пусть и через DLNA.

Настраивается установкой xupnpd. Можно поставить программу на роутер. В интернете есть мануалы по ентой установке. У меня же стояла задача более простая. Заставить ТВ показывать iptv не важно откуда. В итоге поставил xupnpd на ноут с ubuntu, благо на оффсайте есть уже собранный пакет для нее.

Правим конфиг файл /etc/xupnpd.lua
Заменяем интерфейс на свой, через который выходим в интернет.

Запускать следует через sudo.
sudo xupnpd

Либо можно утянуть последнюю версию с svn

sudo apt-get install subversion
svn co http://tsdemuxer.googlecode.com/svn/trunk/xupnpd
cd xupnpd/src/
make

Не забываем поправить конфиг файл xupnpd.lua
Следует заменить интерфейс на свой, через который выходим в интернет.

Запускаем программу
chmod +x xupnpd
./xupnpd

Дальше настройки можно править через веб-интерфейс 192.168.X.X:4044, где 192.168.X.X ваш ip.
Там же можно загрузить свой плейлист.m3u

Ввиду того, что я смотрю iptv от тетушки Шуры и потоки там все http-шные, мне не пришлось ставить udpxy. Единственный нюанс, который заставил меня поломать голову, из-за того, что при выборе канала трансляция запускалась, но картинки не было, заключается в том, что в настройках Default mime type следует указать mpeg_ts (cfg.default_mime_type=’mpeg_ts’).

cron flock

19 ноября 2013
Рубрика: Linux, vanoc.ru
Теги: , ,

vanoc

Дабы не плодить процессы в кроне.

flock -n /tmp/flock.lock -c "rsync -avz -e ssh 'name@host:/path' /path"

flock устанавливает блокировку на указанный файл, в случае успеха выполняет нашу команду.

SSH уведомление об авторизации

13 ноября 2013
Рубрика: Linux, vanoc.ru
Теги: ,

vanoc

Решил реализовать уведомление на почту о том, что кто-то авторизовался в ssh. Сперва решение выглядело вот так:

echo -e "Remote connection from\t $SSH_CONNECTION \nLogin $USER" | /bin/mail -s "[SSH] Login on $(hostname)" мояпочта@сайт.ru

Добавляем эту строку в /etc/ssh/sshrc (в случае, если этого файла нет, а его скорее всего не будет, его следует создать)

У этого решения есть существенный недостаток — письма будут отсылаться после любой аутентификации по ssh. Даже если это вы залогинились, письмо все равно вам придет. Дабы не получать массу писем и ввиду того, что я начал изучать python, решил попробовать написать на нем. Получился скрипт сравнивающий с нашего ли ip залогинились, в противном случае шлет email на указанную почту.


#!/usr/bin/env python

import smtplib, os, platform
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText

server = smtplib.SMTP('smtp.сайт.ru', 25)

sender = 'root@'+platform.node()
to = 'мояпочта@сайт.ru'

ip = 'xxx.xxx.xxx.xxx'
sship = os.environ['SSH_CONNECTION']
loginname = os.environ['LOGNAME']

msg = MIMEMultipart()
msg['Subject'] = '[SSH] Login on ' + platform.node()
msg['From'] = sender
msg['To'] = to
text = 'Remote connection from\t' + sship + '\nLogin ' + loginname
msg.attach (MIMEText(text, 'plain'))

textmail = msg.as_string()

if ip in sship:
        print ('hi. Welcome!')
else:
        print ('who is it?')
        server.sendmail(sender, to, textmail)

Сохраняем скрипт в файл, например, noticessh.py и прописываем путь к нему в /etc/ssh/sshrc. К сожалению не со всеми версиями второго питона работает, так же мешает авторизовываться по sftp в случае, если sftp работает через ssh. FileZilla, например, ругается «Оut of memory!» Надо бы допилить, но на данный момент к сожалению знаний по питону не достаточно.

301 редирект с домена на домен

13 ноября 2013
Рубрика: How-to, vanoc.ru
Теги:

vanoc

Вчера столкнулся с таким интересным явлением, когда у совершенно стороннего чужого домена в качестве А записи в DNS с был указан ip нашего ресурса. Т.о. этот совершенно чужой домен показывал контент нашего портала и даже индексировался поисковиками. Для чего это было сделано не знаю, возможно ради повышения ТИЦ и PR своего домена.

Исправил это безобразие записью в .htaccess

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} чужойсайт.ru
RewriteRule ^(.*)$ http://нашсайт.ru/ [R=301,L]

Tor Browser и Ubuntu 13.10 Saucy Salamander

5 ноября 2013
Рубрика: Saucy Salamander (13.10)
Теги:

Zeboton

После обновления Ubuntu с 13.04 до 13.10 обнаружилась, что в Tor Browser нельзя ничего ввести с клавиатуры ни в строке адреса (URL), ни в строке поиска, ни вообще где бы то ни было.

Виновником оказался IBus. Как я понял, для русского языка данная программа не очень нужна, поэтому её можно отключить.
Читать далее »

Обновление WordPress и плагинов без запроса пароля от FTP

5 ноября 2013
Рубрика: MeAndUbuntu
Теги:

Zeboton

Немного не о Linux, однако, вещь может быть полезной. На некоторых хостингах при обновлении WordPress или его плагинов запрашивается пароль для доступа к файлам по FTP. Если такое происходит на общем хостинге (shared hosting), то с этим уже ничего не поделаешь, так как прав на изменения владельца и группы у директорий и файлов скорее всего нет. Если же такое происходит на VPS или выделенном сервере, то решение есть и, как оказалось, очень простое.
Читать далее »

Обновление PGDG apt-key

17 октября 2013
Рубрика: Precise Pangolin (12.04 LTS), Заметки
Теги: , ,

Zeboton

Сегодня при попытке сделать apt-get update получил сообщение:

W: Произошла ошибка при проверке подписи. Репозиторий не обновлён и будут использованы предыдущие индексные файлы. Ошибка GPG: http://apt.postgresql.org precise-pgdg Release: Следующие подписи неверные: KEYEXPIRED 1381654177

W: Не удалось получить http://apt.postgresql.org/pub/repos/apt/dists/precise-pgdg/Release

W: Некоторые индексные файлы не скачались. Они были проигнорированы или вместо них были использованы старые версии.

В wiki PostgreSQL Global Development Group (PGDG) я обнаружил новость от 10.10.2013 о том, что «новый pgdg-keyring увеличивает дату пригодности ключа». «Отлично!», — подумал я: «Как же мне обновить пакет, если я даже список пакетов с их сервера забрать не могу?»
Читать далее »