пятница, 14 октября 2011 г.

Postfix maildir umask

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

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

Переносом писем по задумке должно заниматься веб-приложение, работающее с правами веб-сервера. Чтобы веб-сервер мог перенести письма, ему нужно иметь соответствующие права доступа. Для этого я включил пользователя www-data в группу vmail, затем дал группе vmail права rwx на каталоги почтовых ящиков.

Каталоги почтовых ящиков создаёт программа virtual почтовой системы Postfix. Можно задать uid и gid, с которыми будет работать эта программа. Это делается с помощью параметров virtual_uid и virtual_gid. Я для пробы решил создать один почтовый ящик и отправить на него письмо. virtual создал каталоги почтового ящика, но выставил для группы vmail права доступа, которые не позволяют ей делать ничего с этим ящиком.

Я прочитал man virtual в надежде найти какой-нибудь параметр вроде virtual_umask, но не нашёл. Попробовал выставить umask в файле /etc/init.d/postfix, перезапустил его, удалил каталог почтового ящика и снова отправил тестовое письмо. Каталог создался с теми же правами. В недоумении я стал искать в интернете, не сталкивался ли кто с такой же проблемой.

Оказалось - сталкивались. А параметра virtual_umask нет и не будет. Вьетце Венема аргументирует свою позицию тем, что он сисадмин с 20-летним стажем и доступ к письмам со стороны левых программ может отрицательно отразиться на безопасности почтовой системы. Никаких других доводов он слышать не желает. В том числе он не желает слышать о том, что система прав в Unix задумана такой не для того, чтобы искусственно обходить её стороной. Патчи, если кто такие и напишет, судя по молчанию Вьетце, приняты в основную ветку не будут.

Единственное приемлемое решение моей задачи, по мнению Вьетце Венема, - это забрать почту по протоколу POP из этого ящика и отправить её на другой ящик по протоколу SMTP.

У меня отношение к этому простое - безопасность ради безопасности не нужна. Я лучше постараюсь заменить Courier на какую-нибудь другую программу, которая сама умеет складывать письма в почтовые ящики и имеет собственный модуль доставки для Postfix или умеет работать по протоколу LMTP. В качестве замены исправно работающего много лет Courier воспользуюсь Dovecot.

В общем, если что - не удивляйтесь невменяемости этого уважаемого всеми товарища.

P.S. Настроил Dovecot вместо Courier и... всё то же самое. Настройка umask у Dovecot в прошлом была, но потом была удалена. Вместо неё придумали плагины для работы с общими почтовыми ящиками. Не смешно, но для такой простой операции, видимо, придётся воспользоваться чем-то вроде fetchmail. Хотя, можно воспользоваться sudo, в конфиге которой прописать одну строго ограниченную команду, можно сделать скрипт, работающий по cron'у, можно пропатчить сам Dovecot, а вот использование LMTP из Dovecot тоже не поможет.

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

Remmina

Сегодня вновь посмотрел на программу Remmina и на этот раз она мне понравилась, т.к. я нашёл в ней функцию подключения по протоколу RDP через SSH-туннель, а также нашёл удобный апплет для XFCE.

Сама Remmina в Debian находится в пакете remmina и по умолчанию поддерживает только протоколы SSH и SFTP. Плагин для подключения по RDP находится в пакете remmina-rdp, а апплет находится в пакете remmina-xfce.

Для начала поставим всё это хозяйство:
# apt-get install remmina remmina-rdp remmina-xfce
Разобраться в настройках легко, я просто покажу как она выглядит.

Главное окно Remmina:

Окно настройки RDP:


Окно настройки SSH:

Окно настройки SFTP:

Кусочек экрана с апплетом для XFCE:

Удалённый рабочий стол, открытый по протоколу RDP с помощью Remmina:

Теперь подключаться к удалённым компьютерам стало значительно удобнее!

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

Программы, которыми я пользуюсь в Debian GNU/Linux

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

Пользуюсь средой XFCE. До этого я пользовался KDE3, но эта ветка прекратила своё существование в пользу более новой - KDE4, которая мне не понравилась. Я последовательно перепробовал IceWM, затем LXDE, и остановился на XFCE, которым сейчас и пользуюсь. Смена графической среды повлекла за собой замену многих программ из лагеря KDE/Qt на аналогичные из лагеря Gnome/GTK.

Сеть:

1. Torrent-клиент - Transmission.
2. FTP-клиент

Iceweasel или Chromium - когда нужно просто скачать несколько файлов.

lftp или ncftp - когда я работаю в консоли или мне нужно работать с FTP-сервером из скрипта.

3. Web-браузер - Iceweasel или Chromium.
4. Почтовый клиент - пользуюсь GMail.
5. RDP-клиент - Remmina.
6. Эмулятор терминала - Terminal (пакет xfce4-terminal).
7. IM-клиент - Pidgin.

Раньше пользовался Psi. Сейчас стал пользоваться Pidgin по двум причинам:
1. America Online продала ICQ компании Mail.ru. Mail.ru поменяли политику - открыли протокол, перестали его менять, разрешили использовать альтернативные ICQ-клиенты. Поэтому я вновь стал пользоваться ICQ, в дополнение к Jabber.
2. KDE4 мне не понравился, поэтому с KDE3 я перешёл на XFCE. Для XFCE родным тулкитом является GTK, поэтому вместо логичного для KDE мультипротокольного клиента Kopete я выбрал Pidgin, который лучше подходит для XFCE.

Офисные программы:

1. Офисный пакет - Openoffice.org.

В дальнейшем, видимо, будет заменён на LibreOffice. Почему - я думаю понятно без объяснений.

2. Калькулятор - KCalc или bc.
3. Просмотр PDF, DjVu, PostScript - Evince.
4. Просмотр FB2 - fbreader.
5. Файловый менеджер - Thunar и bash.
6. Архиватор - Xarchiver или консольные tar, bzip2/bunzip2, gzip/gunzip, unzip, unrar.

Картинки:

1. Просмотр картинок - GPicView.
2. Редактор картинок - KolourPaint (альтернатив не искал, т.к. практически не пользуюсь).
3. Скриншоты - ScreenShooter из XFCE (пакет xfce4-screenshooter).

Мультимедиа:

1. CD-риппер - консольный риппер ripit.
2. Запись CD/DVD - K3b (увы, лучше него пока ничего не нашёл).
3. Аудио-плеер - DeadBeef.
4. Простановка тегов в музыкальных треках - ExFalso.
5. Видеоплеер - SMPlayer.

Разработка:

1. Редактор кода, в том числе C и HTML - Geany или vim-lite.
2. Текстовый редактор - LeafPad, MousePad.
3. Переводы страниц руководства - POEdit и po4a.

Разное:

1. Учёт личных финансов - GNUCash.

Ещё я пользуюсь рядом самописных и подсмотренных где-то скриптов. В частности это скрипты для конвертирования кодировок текстовых файлов (на основе iconv), конвертирования кодировок в тегах mp3-файлов (на основе mid3iconv из пакета python-mutagen), конвертирования из doc, rtf и html в текст (antidoc, unrtf и unhtml соответственно), скрипты переименования фотографий по EXIF-тегам (exiftool из пакета libimage-exiftool-perl), скрипты разбивки FLAC-файлов (shntool).

Я перестал пользоваться клиентами DC++, т.к. в уфанетовском хабе с некоторых пор наблюдается голяк. На первый план вышли torrent-трекеры.

Перестал пользоваться менеджером дисков Gnome Catalog, так как купил жёсткий диск на 1 Терабайт. Кроме того, запись дисков отнимает очень много времени, которого у меня теперь мало. Да и барахольщиком нынче быть не очень выгодно, т.к. тарифы на интернет стали очень дешёвыми - что угодно можно найти и быстро скачать из Интернета в любой момент.

Перестал вообще пользоваться двухпанельными менеджерами файлов. Это связано со предыдущими пунктами: дешёвые тарифы на интернет, распространение торрентов, объёмный жёсткий диск, нехватка времени - теперь реже нужно разгребать завалы файлов.

Перестал играть в компьютерные игры - нет времени. Стал читать вместо этого книги. Обычные, бумажные.

Изменения от 4 октября 2011:

Для просмотра PDF, PostScript и DjVu вместо программ KPDF, KGhostView и DjView4 теперь пользуюсь Evince.

Вместо FreeRDP теперь использую Remmina - менеджер подключений SSH, SFTP и RDP (и других, которыми не пользуюсь). Плагин RDP использует для подключения FreeRDP. Использую апплет Remmina для XFCE.