Showing posts with label nix. Show all posts
Showing posts with label nix. Show all posts

Thursday, November 8, 2012

Установка Sun Java в Debian 6 http://geckich.blogspot.ru/2012/05/sun-java-debian-6.html

http://geckich.blogspot.ru/2012/05/sun-java-debian-6.html


Установка Sun Java в Debian 6

Для того, чтобы поставить sun-jdk или sun-jre, а не open-jdk/jre, которые ущербны, необходимо сделать следующее.

1. Добавить в репозиториях раздел non-free путем дописывния в конец строк репозиториев в файлике/etc/apt/sources.list например (у вас прсото могут быть другие репозитории/зеркала):


deb http://mirror.yandex.ru/debian/ squeeze main contrib non-free

2. Теперь обновляем список пакетов и ставим джаву:

apt-get update
apt-get install sun-java6-jdk

Для того, чтобы джава нормлаьно работала в браузерах, необходимо поставить пакет с плугином:

apt-get install sun-java6-plugin

3. Переключиться на новую джаву (если до этого юзалась open java) командой:

update-alternatives --config java

Будет что-то типа:


  Selection    Path                                      Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      auto mode
  1            /usr/bin/gij-4.4                           1044      manual mode
  2            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
  3            /usr/lib/jvm/java-6-sun/jre/bin/java       63        manual mode

Выбираем 3... Усё.

Friday, October 19, 2012

Что делать, если в Pidgin не подключается ICQ в Debian/Squeeze 6 http://winreview.ru/chto-delat-esli-v-pidgin-ne-podklyuchaetsya-icq-v-debiansqueeze-6/

http://winreview.ru/chto-delat-esli-v-pidgin-ne-podklyuchaetsya-icq-v-debiansqueeze-6/

Что делать, если в Pidgin не подключается ICQ в Debian/Squeeze 6

Примерно с полгода назад одной из моих операционных систем стала Debian/Squeeze, стабильный шестой релиз одного из старейших дистрибутивов Linux (старожилы, возможно, помнят эпический цикл «30 дней без Windows»). Так получилось, что ряд задач мне быстрее и удобней решать именно в ней, и поэтому я частый гость в этой системе. С недавних пор у меня внезапно отвалилась ICQ в Pidgin, что меня несколько огорчало — я предпочитаю использовать мультипротокольные клиенты, а не запускать кучу программ.
Если верить Google, проблема с отказом подключения к серверу ICQ возникала  не только у меня. Многим посчастливилось увидеть сообщение вида:
Вы соединялись и отсоединялись слишком часто. Подождите 10 минут и попытайтесь снова. Если вы продолжите попытки, вам придётся ждать ещё дольше.
Как оказалось, решается эта проблема просто, как два байта переслать. А вот путь к этому решению был непрост. Но обо всём по порядку.
Так выглядели мои настройки подключения к серверу ICQ:
Опытным путем я обнаружил, что
  • следует убрать флажок Use clientLogin
  • следует изменить кодировку с CP-1251 на CP1251. Наличие дефиса заставляет присылать сервер ответ вида «Вы не прошли авторизацию», который Pidgin почему-то интерпретировал как превышение количества подключений. Ну да ладно. Работающий вариант параметров соединения в Pidgin 2.7.3 на Debian таков:

Видимо, на серверах ICQ произошли какие-то изменения, требующие коррекции настроек, да и кодировки-то надо правильно указывать. CP-1251 — неверная запись.

Поиску этого, казалось бы, простейшего решения предшествовало немало технической возни. Сегодня мы с приятелем Димой aka citadeldimon решили вплотную и радикально заняться искоренением проблемы с аськой, потому что … потому что мне делать было нечего, а процесс сборки deb-пакета с последней версией pidgin, которым предлагал заняться citadeldimon, мне показался интересным.
Каждый из нас занялся компиляцией свежевыкачанных исходников. Процесс этот относительно прост, но, мягко говоря, муторный. Ваш покорный слуга, предвкушавший увлекательную процедуру, сразу вооружился Synaptic, чтобы качать недостающие в системе пакеты и приложения.
В ходе компиляции программного обеспечения практически всегда приходится доставлять заголовочные dev-пакеты, используемые компилятором для создания исполняемых файлов и библиотек. Где-то на 45-ом файле мое терпение кончилось. Используя логи Synaptic, я удалил все установленные пакеты, и твердо решил для себя — если я ещё когда-нибудь надумаю компилировать софт в Linux, я заимею виртуальную машину, и в ней установлю все заголовочные файлы и компиляторы сразу. На десктопной машине мне это ни к чему.
Мой приятель оказался более терпеливым, и пакеты таки собрал. Заинтересованные лица могут попробовать их в деле (я сам не пробовал):
pidgin_2.10.0-1_x86.deb  | pidgin_2.10.0-1_amd64.deb
Ну а я взялся за изучение сути проблемы, придя к вышеописанному решению. Разумней, конечно, было начать именно с этого, открыв окно отладчика Pidgin.
Отдельно хочу сделать акцент на выпиливании пакетов с заголовочными файлами. После того, как попытка скомпилировать Pidgin провалилась, я воспользовался логами приложения Synaptic (ради чего я и запускал его, собственно). На каждый запуск установки пакетов Synaptic пишет файл журнала в папку /root/.synaptic/log, разобрав который, можно избавиться от любой программы — поставленной на «посмотреть», либо по ошибке. К сожалению, не помню где я подсмотрел вот такую команду:
КОД: ВЫДЕЛИТЬ ВСЁ
grep  \( ./synaptic/*.log | grep -Po '[\w-.]+(?=\s)' | xargs apt-get -y purge
Симбиоз консольных утилит и регулярок ищут в папке synaptic, находящейся в текущей директории, логи, которые я туда скопировал, и запускают полное удаление пакетов, указанных в логах. Чертовски удобно.
Резюмируя, скажу следующее. Одним из ощутимых недостатков дистрибутивов Linux с пакетным менеджментом приложений было и, к сожалению, остаётся «залипание версии» - когда при выходе новой версии приложения она попадает не в твою, а в следующую версию дистрибутива ОС. Это и приводит к необходимости компилировать самостоятельно те приложения, бинарные пакеты которых разработчиком и/или третьими лицами не собираются. В этом отношении в довольно выгодных условиях находятся пользователи семейства систем Ubuntu с их обилием PPA-репозиториев. К счастью, реальная необходимость замены версий приложений у меня случается [пока] довольно релко.

Saturday, October 13, 2012

Настройка sudo в Debian GNU/Linux и Ubuntu Linux http://sudouser.com/nastrojka-sudo-v-debian-gnulinux-i-ubuntu-linux.html


Настройка sudo в Debian GNU/Linux и Ubuntu Linux 

Немного о самом sudo, из wikipedia. sudo (англ. superuser [substitute user] do, дословно «выполнить от имени суперпользователя») — это программа, разработанная в помощь системному администратору и позволяющая делегировать те или иные привилегированные ресурсы пользователям с ведением протокола работы. Основная идея — дать пользователям как можно меньше прав, но при этом ровно столько, сколько необходимо для решения поставленных задач.

Команда sudo предоставляет возможность пользователям выполнять команды от имени root, либо других пользователей. Правила, используемые sudo для принятия решения о предоставлении доступа, находятся в файле /etc/sudoers; язык их написания и примеры использования подробно изложены в sudoers(5).

Для редактирования файла /etc/sudoers следует использовать программу visudo, которая проверяет синтаксис и тем самым позволяет избежать ошибок в правилах.

В большинстве случаев грамотная настройка sudo делает работу от имени суперпользователя ненужной.

По умолчанию root аккаунт в Ubuntu отключен и пароля у root просто нет. Все административные задачи выполняются через sudo. По умолчанию право на выполнение sudo предоставлено первому пользователю, созданному при инсталляции. Все остальные по умолчанию — обычные пользователи.

Sudo — очень гибкий инструмент, позволяющий настроить права на выполнения административных действий для каждого пользователя отдельно. Например одному разрешить перезагружать какой-либо сервер, а другому дать возможность менять права доступа к файлам и папкам. Откройте файл /etc/sudoers. Это можно сделать либо отдав команду на открытие файла в вашем любимом текстовом редакторе, например так:
# nano /etc/sudoers
либо при помощи утилиты visudo:
# visudo
Последний способ откроет файл /etc/sudoers в редакторе пользователя по умолчанию, или если таковой не задан, то в редакторе vi. Преимущество данного способа в том, что при сохранении файл будет проверен на соответствие синтаксису.

Простейшая конфигурация выглядит так:

Defaults env_reset

# User privilege specification
root ALL=(ALL) ALL
user ALL=(ALL) ALL

Такая конфигурация дает пользователю user все права пользователя root при выполнении команды sudo. Defaults env_reset полностью запрещает все пользовательские переменные при исполнении команд от имени root. Это хорошо с точки зрения безопасности, однако иногда вызывает проблемы. Можно разрешить использование личных переменных какой-либо группе или отдельному пользователю, добавив подобную этой строку:
Defaults:%admin !env_reset
которая будет сохранять переменные окружения для всех пользователей группы admin, или:
Defaults:user env_keep=TZ
которая сохранит переменную TZ для пользователя user.

Если сервер администрируется группой людей, то имеет смысл поступить таким образом:
%admin ALL=(ALL) ALL
Как можно догадаться, эта запись дает доступ к root-привилегиям всем членам группы admin.

Можно настроить для каждого конкретного пользователя доступ только к конкретным командам. Например:
user ALL = /bin/mount, /bin/kill
даст пользователю user права на выполнение команд mount и kill с любой машины, а:
user2 mydebiancomp = /sbin/modprobe
даст пользователю user2 права на выполнение modprobe с машины mydebiancomp. Я думаю, что синтаксис понятен:
ползователь хост = команда
где команда прописывается с полным путем. Для группы все аналогично, только добавляется знак «%».
III.Продвинутые настройки sudo.

Очень удобно при настройке sudo создать группу алиасов. Чтобы не вбивать постоянно повторяющиеся команды, пользователей и хосты, мы можем собрать их в группы и устанавливать правила для каждой группы алиасов. Например так:

Cmnd_Alias command_alias = command1, command2, … // алиасы команд
Host_Alias host_alias = hostname1, hostname2, … // алиасы хостов
User_Alias user_alias = user1, user2, … // алиасы пользователей

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

Исполнение команды от имени другого пользователя тоже возможно. Например при такой записи:
user ALL = (user2, user3) /usr/bin/ark
пользователь user может выполнить команду ark от имени user2 или user3, при помощи ключа u, например так:
$ sudo -u user2 ark

По умолчанию sudo запоминает пароли на 5 минут. Если вы этого не хотите, то для каждого пользователя, группы или алиаса можете установить отдельное правило, например при:
Defaults:user timestamp_timeout=0
пароль полдьзователя user не будет запоминаться вообще, а при:
Defaults:user timestamp_timeout=-1
будет запоминаться на все время аптайма.

Sudo без паролей также возможно. Для этого существует подобная конструкция:
user myubuntucomp = NOPASSWD: /bin/kill
которая даст возможность пользователю user с хоста myubuntucomp использовать kill без запроса пароля. Вставьте свои значения, например ALL вместо имени хоста и команды, чтобы пользователь user мог вообще никогда не вводить пароль для выполнения команд от имени root с любого хоста, однако помните, что это делает систему очень уязвимой.

Источник: http://debian-ubuntu-linux.ru

Wednesday, March 7, 2012

Определите свое местоположение по WiFi сети http://habrahabr.ru/blogs/linux/116575/


Определите свое местоположение по WiFi сети

Простой скрипт. Определяет местоположение. Вы должны работать через Wifi.


iwlist wlan0 scan | sed -n 's/.* Address: //p;T;s/ //g;q' |
sed 's/.*/{version:1.1.0,host:maps.google.com,request_address:true,address_language:'${LANG/.*/}',wifi_towers:[{mac_address:"&",signal_strength:8,age:0}]}/' |
curl -sX POST -d @- www.google.com/loc/json |
sed -e 'h;s/.*latitude":\([^,]*\).*/\1/;G;s/\n[^\n]*longitude":\([^,]*\).*/,\1\n/;s|^|http://maps.google.com/maps?q=|;x;s/[,{]/\n/g;s/["}]//g;s/:/\t/g;s/\n//;G'

Не забудьте поставить curl.

В моем случае правильно определил город и улицу, ошибся с номером дома на 4.

Как это работает? Google собирает информацию о том, где расположены какие точки доступа (по MAC).
Первая часть (iwlist wlan0 scan | sed -n 's/.* Address: //p;T;s/ //g;q' ) — это просто определение мака.
+55
31 марта 2011, 22:03
136

комментарии (30)

+5
Deeman31 марта 2011, 22:14#
Работает, причём отлично. Интересно, сколько человек подумали о том, чтобы выполнить этот скрипт на чьем-нибудь удаленном компьютере? :)
+1
bondbig31 марта 2011, 22:21#
Ошибся на километр. Хотя я с айфоном и андроидом через свою сеть выхожу на гуглокарты и прочие гуглосервисы уже пару лет как. И роутер вайфай тот же.
+1
snizovtsev31 марта 2011, 22:28#
Работает на ура. В моем случае погрешность получилась всего в 60м (соседний дом).
+2
DmZ31 марта 2011, 22:37#
Не обязательно работать через WiFi. Просто нужно иметь MAC-адреса близлежащих сетей. Точность определения сильно зависит от того гуляли ли люди с включенными гугломапсами и GPS возле этих сетей, или оставляли свои точные координаты в сервисе Location (естественно с включенным WiFi).
0
Sander8031 марта 2011, 22:45#
Точно. Спасибо за поправку!
0
vk21 апреля 2011, 09:31#
Вы хотите сказать, что тот же айфон посылает на google maps мак-адреса хотспотов, которые чувствует рядом?
0
DmZ1 апреля 2011, 09:48#
Про iPhone не уверен. Судя по документации Google, для iPhone приложение Google Локатор отдельное от гугломапсов и должно быть установлено отдельно из AppStore. Для Androida оно встроенное в гугломапсы.
Если оно включено или пользователь нажал My location в гугломапсах — то поставили на карандаш.
+4
YasonBy31 марта 2011, 23:14#
<zanuda mode>
1. Запрос использует deprecated API, лавочку могут прикрыть в любой момент.
2. Использование прямых HTTP-запросов (не через API) запрещено правилами.
</zanuda mode>

Использовать такое в серьёзном проекте рискованно…
0
MigMit31 марта 2011, 23:57#
-bash: iwlist: command not found
0
Sander801 апреля 2011, 00:02#
если не ошибаюсь, то 
sudo apt-get install wireless-tools
или какой у вас дистрибутив?
0
Holms1 апреля 2011, 00:31#
а для MacOs такое есть?
0
Sander801 апреля 2011, 00:46#
я думаю, может сработать kismac — но output будет другой — нужно перелопачивать начало скрипта.
или вообще что-нибудь типа iwconfig
если сумеете подкорректировать, кидайте сюда
изменять нужно только первую строчку скрипта
у меня нигде рядом маков нет
+2
kav1 апреля 2011, 01:16#
Если на скорую руку, то:

ipconfig getpacket en1 | grep -Eo '([a-z0-9]{2}:){5}[a-z0-9]{2}' | sed 's/.*/{version:1.1.0,host:maps.google.com,request_address:true,address_language:'${LANG/.*/}',wifi_towers:[{mac_address:"&",signal_strength:8,age:0}]}/' | curl -sX POST -d @- www.google.com/loc/json

Где en1 — wifi интерфейс, у вас возможно en0, проверьте в ifconfig.
0
Holms1 апреля 2011, 01:23#
сработало :)
хотя погрешность большая
0
vk21 апреля 2011, 09:28#
Уж лучше ifconfig en1 + grep ether, причем тут getpacket :)
0
vk21 апреля 2011, 09:30#
Вопрос снят, чуть спутал сущности.
–1
a3x1 апреля 2011, 00:07#
А как такое же под виндой замутить?
0
Sander801 апреля 2011, 00:13#
+6
grayhex1 апреля 2011, 00:32#
под виндой же.
нам нужно простенько, нажал, глючит, но работает.
а то цигвин курить заставляют.
+3
legrus1 апреля 2011, 00:43#
Отлично, теперь, если утром я забыл где я, всегда можно набрать эту простую команду!
+5
Sander801 апреля 2011, 00:47#
по памяти :D
настоящий админ с любого бодуна набирает скрипт без ошибок ))
0
casualuser1 апреля 2011, 00:55#
если mac был склонирован, то результат может быть интересным =]
0
skobkin1 апреля 2011, 03:20#
Получается, что через палу кило, на другом берегу реки такой же MAC как у меня?? Непорядок!
0
Sander801 апреля 2011, 09:11#
кстати, по поводу точности
этот скрипт передает на google данные об одной wifi-точке 
если же собрать данные о нескольких и сравнительной силе сигналов — думаю, результат будет получше
0
ivanrt1 апреля 2011, 09:52#
Надо написать скрипт, который дает гуглу точки по очереди, смотрит полученые координаты, точность, усредняет с учетом силы сигналов, получает итоговые координаты и запрашивает адрес по координатам.
0
Sander801 апреля 2011, 10:14#
Даже не совсем так. 
Параметр wifitowers, передаваемый на Google, является массивом. Так что можно положиться на Google, главное — дать побольше данных.
Какая утилита нам может их все выдать? Может, aircrack-ng?
0
Sander801 апреля 2011, 10:20#
Чушь говорю. Нужно только получше парсить iwlist.
Надо попробовать что-нибудь собрать
НЛО прилетело и опубликовало эту надпись здесь
0
Sander801 апреля 2011, 11:26#
а если поставить aircrack-ng и дать в вашем случае команду 
sudo airmon-ng start eth0, после чего использовать mon0 в качестве интерфейса для сканирования?