вторник, 24 апреля 2012 г.

Chromium: FlashBlock без FlashBlock :)

Раньше устанавливал в браузерах расширения, блокирующие рекламу. Но с увеличением количества вкладок и ростом сложности сайтов пришлось отказаться от любимого AdBlock - ужасно тормозил и пожирал память. Однако flash-баннеры оказались ещё более ужасным злом - они тормозили ещё сильнее ;) В качестве компромисса устанавливалось одно из расширений, блокирующих Flash - в последнее время я использовал FlashFree, у него в описании написано "very fast with small memory footprint", и это правда ;) Правда, мне до сих пор кажется (не проверял!), что flash всё равно не только загружается вместе с остальным содержимым страницы, но и запускается на какую-то долю секунды, а отключается уже потом. Из прочитанной когда-то давно дискуссии в теме разработчика FlashBlock для Google Chrome можно было сделать вывод, что всё так и работает, как мне кажется - элемент страницы загружен, просто скрыт. А вчера совершенно случайно наткнулся на упоминание о том, что вообще любые подключаемые модули (Flash, разумеется, тоже модуль!) в Chrome можно не только отключить, но и требовать от пользователя нажатия для запуска! Что мне и надо было всегда от блокировщика флэша. Всё просто. Кнопка с гаечным ключом справа от строки адреса ("Настройка и управление...") - Настройки - Расширенные - в строке "Конфиденциальность" кнопка "Настройки содержания" - строка "Подключаемые модули" - радиокнопка "Нажмите для воспроизведения". Перезапустить Chrome (у меня Chromium, но в данном случае это не важно). Всё. Иконки, появляющиеся на местах элементов страницы, реализованных на Flash, какие-то серые и некрасивые, но мне кажется, что это невысокая цена за блокировку главного пожирателя ресурсов вообще без дополнительных затрат.
Updated 12.11.2012: в Chromium (и, видимо, в Chrome тоже) изменился вид экрана настроек, довольно давно уже ;) Теперь так: Настройки - ссылка в самом низу "показать дополнительные настройки" - (дальше всё как и было) в строке "Конфиденциальность" кнопка "Настройки содержания" - строка "Подключаемые модули" - радиокнопка "Нажмите для воспроизведения".

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

Почему скрипт не может быть setuid

Подробно вся тема раскрыта здесь. По-английски, да.
А если кратко - ядро Linux, как и ядра других *nix-like операционных систем, отрабатывая системный вызов на исполнение какого-либо файла, игнорирует suid/sgid биты атрибутов файла, если файл начинается с #! - то есть если это любой скрипт. Он запустится. Но запустится с правами того пользователя, который его запустил.
Из соображений безопасности. Так задумано. Обоснование - по ссылке...

четверг, 19 января 2012 г.

Шпаргалка по Aptitude

Продолжая ту же тему... Я как-то всегда предпочитал использовать чисто консольные и как можно более лёгкие утилиты, соответственно с aptitude особо не общался - apt-get вроде бы позволял сделать то же самое...
Но когда нужно было установить MariaDB вместо MySQL (эксперименты =) в результате мы всё равно вернулись к MySQL) - aptitude смогла предложить вариант удаления/установки пакетов, разрешающий зависимости, в полуавтоматическом режиме. Кстати, не надо торопиться прерывать её работу, если она предлагает вариант разрешения зависимостей, вас не устраивающий - мне она почему-то каждый раз предлагала сначала что-то вроде "оставить всё как есть и ничего не устанавливать". Ответьте ей "нет", возможно, несколько раз, и посмотрите разные варианты. Вполне возможно, что один из них вам подойдёт.
Ссылки:
Шпаргалка по Aptitude
Управление deb-пакетами с помощью aptitude: командный режим
Aptitude: особенности интерактивного режима

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

FAQ по apt-get в Debian (Ubuntu)

Продолжая тему работы с пакетами в Debian... Только ссылки:
Отличный FAQ по apt-get в Debian (Ubuntu)
Оригинал

пятница, 13 января 2012 г.

Debian - как откатить версию пакета

Иногда как что-нибудь обновишь... лучше бы не обновлял =) Сегодня это был php5-fpm из репозитория dotdeb.
Как из командной строки сделать downgrade?
Элементарно, вообще-то (возможно, придётся указывать -f... это лучше сначала сделать вместе с -s -V и внимательно прочитать вывод команды):
apt-get install php5-fpm=5.3.8...............
Упс... а какая версия стояла до того? И какие версии, собственно, вообще доступны?
Можно напрямую залезть в pool репозитория... но это же неудобно! А если репозиториев несколько?
Открыл для себя удобную утилиту - apt-show-versions. C ключом -a и именем пакета она выдаёт именно то, что надо - список доступных версий пакета. С указанием, из какого репозитория доступны. По умолчанию в минимальном дебиане не установлена, пакет так и называется apt-show-versions.
Опять не то - владелец dotdeb выкладывает в репозитории только последние версии пакета, убирая предыдущие...
Ага, оказывается, есть archives.dotdeb.org - там лежат некоторые из старых версий пакетов с dotdeb...
В результате откат на старую версию пакета был выполнен в непродвинутом варианте - скачал оттуда пакеты с предыдущей версией php и установил нужные мне через dpkg -i p1.deb p2.deb p3.deb ...
PS. В принципе, apt-show-version не обязателен - информацию о том, какая версия пакета из какого репозитория доступна и какая установлена в системе, можно извлечь из очень подробного вывода apt-cache showpkg name-of-package. Но вывод apt-show-versions компактней и удобней.
PPS. apt-cache policy name-of-package показалась мне наиболее удобной для ответа на вопрос "какая версия пакета из какого репозитория доступна и какая установлена в системе". Можно ничего дополнительного не ставить, всё уже есть, просто название неочевидное :(

воскресенье, 8 января 2012 г.

Mplayer и VDPAU в Ubuntu - решение проблем с притормаживающим видео

У меня до сих пор стоит Ubuntu 10.10 Maverick Meerkat (в Lucid Lynx, 10.04 LTS, проблема та же). И с самого момента установки я ужасно страдаю от того, что VDPAU здесь работает гораздо хуже, чем когда у меня стояла 9.10 и mplayer из ppa, собранный с поддержкой VDPAU - при старте HD video (960x720, H.264) первые несколько секунд видео тормозит и "прыгает". Потом всё стабилизируется, но неприятно же...
Только сегодня до меня дошло, что в данных дистрибутивах до сих пор MPlayer первый, а ведь давно уже существует Mplayer2!
Цитата отсюда:
Much better support for VDPAU functionality on NVIDIA cards
Мгновенно найдена вот эта инструкция... далее понятно:
sudo add-apt-repository ppa:ripps818/coreavc
sudo apt-get update
sudo apt-get install mplayer
MPlayer у меня уже стоял, он просто обновился из этого ppa до 2-й версии...
...И тут же запущенный mplayer -vo vdpau -vc ffh264vdpau вполне плавно и безо всяких прыжков прокрутил начало HD video...
В 11.10 Oneiric Ocelot и альфе 12.04, насколько я понял, данная проблема отсутствует - MPlayer в репозиториях уже второй... Но многие до сих пор используют 10.04 LTS. Так что, возможно, кому-то и пригодится ;)

вторник, 20 декабря 2011 г.

Lubuntu 11.10 - расшарить "Общедоступные"

Преамбула: средний непродвинутый офисный пользователь, пересаженный из-под оффтопика =) в какую-нибудь linux-based desktop operating system, обычно хочет в числе прочего лазить по сети на другие машины и скидывать туда свои файлы / забирать выложенные / редактировать их прямо по сети - и не хочет задумываться о том, как именно это работает =)
В Ubuntu 10.04.3 LTS - до сих пор используем, консервативный и вылизанный Gnome 2 без сырых нововведений незаменим на машинах пользователей - это почти решалось средствами GUI (большинство уже знает - контекстное меню каталога, "Общий доступ", как именно это работает без прав администратора - искать по ключевым словам samba usershare). Почти - потому что у пользователей возникали естественные вопросы: "А почему это он мне файл в общедоступные положил, а я теперь его ни редактировать, ни стереть не могу?"
Всё правильно, права доступа. Да, Ubuntu хватает интеллекта назначить доступному для всех на чтение-запись каталогу права rwxrwxrwx. Но "net usershare ..." почему-то не умеет писать от имени владельца юзершары - по крайней мере, я не нашёл, как это сделать именно в юзершаре. По умолчанию nobody/nogroup, и права доступа тоже по умолчанию - право на запись имеет только владелец.
Обходил проблему указанием в /etc/samba/smb.conf глобальных директив (всё равно шара будет одна) create mask = 0666 и directory mask = 0777 - некрасиво, невозможно сделать средствами GUI и тяжело объяснять пользователям...
Сейчас пытаюсь переходить на Lubuntu - минималистичный такой desktop, libreoffice & thunderbird заменили на abiword+gnumeric & sylpheed (как минимум abiword не очень хорошо понимает документы word, но никто не мешает снести и поставить то, что удобно и привычно)... в общем-то есть всё, что действительно необходимо, и нет ничего лишнего!
Отличная вещь.
Юзершар - нет.
В смысле, нет плагина (или что там в нём) к PCManFM (файловый менеджер в Lubuntu), который умел бы делать юзершары из GUI.
В процессе поиска решения была найдена утилита system-config-samba, про которую я как-то раньше не знал =) Решение тоже не идеальное, но для одного пользователя получилось сделать общедоступный каталог и заставить самбу работать с этой шарой от имени самого пользователя, а не nobody. Что не очень хорошо с точки зрения безопасности =) , но раз уж допускаем нецентрализованный бардак с доступными на запись сетевыми каталогами у каждого пользователя, то чего уж тут... пусть так =)

Итак, пошаговая инструкция.
Терминал.
sudo apt-get install samba system-config-samba python-glade2
Последнее нужно для system-config-samba, эта утилита написана на питоне, и в пакет явно забыли добавить зависимость... Без python-glade2 из GUI system-config-samba запускается на долю секунды и сразу закрывается - даже сам факт запуска трудно заметить, как будто вообще ничего не происходит...
GUI.
Кнопка с ласточкой - Системные - Samba.
Ваш пароль. Предполагается, что ваш пользователь имеет права администратора. После установки Lubuntu единственный созданный в процессе установки пользователь их имеет =)
В открывшемся окне уже указан один общедоступный каталог, с названием ресурса print$. Чтобы он вам когда-то пригодился, у вас должен быть установлен принтер, в сети должны быть Windows-машины, которые нужно подключать по сети к этому принтеру и при этом обязательно автоматически устанавливать драйвер принтера... который ещё надо скачать с сайта CUPS и положить в print$, да не просто так, а выполнив дополнительные действия с конфигом самбы... В общем, интересующиеся читают man cupsaddsmb, а я у себя так никогда этого и не делал - тут слишком мало машин с Windows, и их можно просто напрямую подключить к CUPS - они умеют печатать через IPP (кроме Windows 7 Starter Edition, увы...)
Offtopic off =) Просто не трогайте этот ресурс, он стандартный системный.
Настройка - Параметры сервера. При желании можно указать workgroup - вашу машину будут видеть в этой рабочей группе, здесь сделал рабочие группы по комнатам, среди полусотни пользователей искать нужную машину стало удобнее =)
Опять оффтопик: имя машины самба берёт по умолчанию из имени хоста. Если почему-то надо его сменить - редактировать (с правами администратора, конечно) /etc/hostname и затем поправить в /etc/hosts хотя бы строку, в которой старое имя хоста и 127.0.1.1. Разумеется, чтобы имя сменилось в самбе, нужно перезапустить хотя бы самбу =)
Вкладка Безопасность. Режим аутентификации меняем на Ресурс. Гостевая учётная запись - ставим того пользователя, для которого создаём общедоступный каталог, это важно!!!
Нажимаете OK. Нажимаете зелёный плюс (или Файл - Добавить ресурс, то же самое). Каталог: нажимаете Обзор, находите от корня файловой системы /home/user/Общедоступные (а почему мы не в домашней папке пользователя? - а потому, что вы сейчас root! =), OK. Ставите птички Запись разрешена и Виден. Вкладка Доступ: включаете радиокнопку Предоставить доступ всем.
Всё.
Конфигурация сетевого каталога записана в /etc/samba/smb.conf, можно полюбоваться. Самба уже перезапущена. Доступ по сети к данному конкретному каталогу осуществляется с правами вашего пользователя, так что даже менять права доступа к папке Общедоступные не нужно...
Очевидный недостаток: если в системе два и более пользователя - "общедоступные" можно сделать только кому-то одному. Но в офисах в основном один пользователь, автоматически логинящийся в систему, под которым за компьютером может сидеть кто угодно, правда ?-)

Необходимый бантик. Запустите PCManFM ("Файловый менеджер"). Введите в строку адреса network:///, нажмите ввод - знакомая картина? Теперь выберите Закладки - Добавить закладку, и у вас будет что ответить на вопрос "а как тут в сеть зайти?"
smb:/// - это, насколько я понял, почти то же самое, но через network:/// ещё должны быть видны AFP-шары. Когда-то хотел попробовать сделать "Общедоступные" через AFP, но столкнулся с (забыл какими) трудностями. Если есть быстрый и аккуратный метод использовать AFP для того же, что здесь сделано через SMB - оставьте, пожалуйста, в комментах ссылку, и комьюнити будет вам благодарно ;)
Менее необходимый, но тоже нужный бантик: если вы хотите, чтобы при просмотре network:/// сразу показывались машины, принадлежащие не к рабочей группе WORKGROUP, а, например, к YOUR_WG - введите в терминале gconftool-2 -t string -s /system/smb/workgroup YOUR_WG