Category Archives: sadmin

sadmin

Публикации за GNU/Linux от семинара преди години

Преди 4-5 години с приятели направихме в гр. Добрич GNU/Linux семинар на тема "GNU/Linux? Да той е чудесен за работна станция" и щяхме да публикуваме подготвените материали от нас за семинара, но така и не го направихме. Днес в един форум (уебмастербг) видях един пич които беше заинтересуван и това реално ме проворика да ги издиря и публикувам за да са полезни на него и всички които търсят информация(Надявам се да бъдат полезни. Макар и малко старички някои неща от тях не остаряват като рибите).

Реших да ги публикувам в kakvo.org за да бъдат прочетени от повече хора и надявам се повече хора да мигрират към свободата. Ето ги и материалите:

GNU/Linux -- автор Мартин Петров
GNU/Linux Дистрибуции -- автор Мартин Петров
Умения за инсталиране на Gnu/Linux -- автор Мартин Петров
Основните команди за работа с Гну/Линукс -- автор Мартин Петров
KDE-- автор Милен Неделчев
Графични среди под GNU/Linux -- автор Георги Георгиев
Примерна инсталация на Fedora Core 4-- автор Андон Николов
GNU Движение за Отворен код/ Въведение в свободният софтуер. -- автор Георги Георгиев
Положителни и отрицателни черти на Gnu/Linux -- автор Мартин Петров
Историята на GNOME -- автор Георги Георгиев

Снимки от семинара(реших и тях да публикувам): Снимки от семинара

PS: Ако съм объркал някои като автор Андо, Гоше, Миленски кажете ще го фиксна веднага!.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Убиване на процес в Windows XP

На една машина ми се случи машината да забие и при явно много кратно натискане на бутона за звука след като машината се фиксна излязоха около 50 "sndvol32.exe" :). Е това ако трябва да се премахва едно по една си е чиста загуба на времето. За целта ги убих от windows-кия cmd. С командата "tasklist /svc" се листват процесите и понеже аз искам да убия "sndvol32"  изпълнявам следната команда:

tskill sndvol32

Това е :)

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Прост скрипт за повече доставчици в GNU/Linux

Идеята е, че имаме доставчика (в този случай) и искаме да разпределим връзката между тях, чрез iproute. Това решение разбира се, не е особено добро, но за временно решение става. Ето го и решението:

#!/bin/bash
#Create Multiple Uplinks. Written by amri [ www.mpetrov.net ]

#ISP 1
isp0_ip="10.10.10.2";
isp0_gw="10.10.10.1";
isp0_network="10.10.10.0/24";
isp0_iface="eth0";
isp0_netmask="255.255.255.0";

#ISP 2
isp1_ip="192.168.1.2";
isp1_gw="192.168.1.1";
isp1_network="192.168.1.0/24";
isp1_iface="eth0:10";
isp1_netmask="255.255.255.0";

#Create tables
rt_tables="/etc/iproute2/rt_tables";
if [ `grep "ISP0" $rt_tables|grep -v grep|wc -l` -eq 0 ];
then
echo "1 ISP0" >> $rt_tables
fi;

if [ `grep "ISP1" $rt_tables|grep -v grep|wc -l` -eq 0 ];
then
echo "2 ISP1" >> $rt_tables
fi;

#Ifconfig
ifconfig $isp0_iface $isp0_ip netmask $isp0_netmask up
ifconfig $isp1_iface $isp1_ip netmask $isp1_netmask up

#Create routes
ip route add $isp0_network dev $isp0_iface src $isp0_ip table ISP0
ip route add default via $isp0_gw table ISP0
ip route add $isp1_network dev $isp1_iface src $isp1_ip table ISP1
ip route add default via $isp1_gw table ISP1

#Rules
ip rule add from $isp0_ip table ISP0
ip rule add from $isp1_ip table ISP1

#Load balancing
ip route add default scope global nexthop via $isp0_gw dev $isp0_iface weight 1 \
nexthop via $isp1_gw dev $isp1_iface weight 1

Скриптчето може да се изтегли и от тук: create_multipe_uplinks.sh

VN:F [1.9.22_1171]
Rating: 5.0/5 (2 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Какво е Wardriving и как да го направим (Kismet + Festival + Gpsd + Gpsdrive)

При Wardriving идеята е да се засекат wireless мрежи и да бъдат картографирани. Според нашият закон или това което четох това не е нелегално(освен ако не се използват тези мрежи с лоши намерения). Все пак аз съм го направил с цел познание и идеята на тази публикация е да споделя знание.

Преди да започнем ще опиша какво ще ни трябва:
Устройства(Gps Reciever с bluetooth, bluetooth на самия лаптоп),
Приложения (gpsdrive,gpsd,bluez-utils,festival,mysql-server,kismet)

След като имаме устройствата ще инсталираме приложенията. Аз лично ползвам Holux 240 slim, но е доста бъгав. От време на време сам решава да се бъгне и да не показа кординатите, а двойчни глупости. За да го върнем в NMEA режим трябва да му извадим батерията с което се връща на първоначални настройки(голямо решение няма що. Има и друго ползвайте друг gps reciever).

Инсталиране на приложенията:
apt-get install gpsdrive gpsd festival mysql-server-5.0 kismet bluez-utils

Сега влючваме нашият GPS Reciever
Изпълняваме "hcitool scan" и виждаме:

Scanning …
00:0B:0D:6D:A1:E8   HOLUX GPSlim240

Ето го и търсеният от нас MAC адрес на Holux Slim 240

Редактираме конф. файлове от bluez-utils в /etc/bluetooth

/etc/bluetooth/hcid.conf

Променяме нашият пин ето тук(в случая е 0000):
passkey "0000"

Сега редактираме /etc/bluetooth/rfcomm.conf

rfcomm0 {
bind no;  # Automatically bind the device at startup
device 00:0B:0D:6D:A1:E8; # Bluetooth address of the device
channel 1; # RFCOMM channel for the connection
comment "My GPS device 00:0B:0D:6D:A1:E8"; # Description of the connection
}

Става ясно, че описваме mac адреса на нашият gps reciever

След това вдигаме нашият интерфейс:
hciconfig hci0 up

Свързваме се към нашето устройство Holux:
hcitool cc 00:0B:0D:6D:A1:E8

Отваряме канал
sdptool add --channel=1 OPUSH

и след това биндваме rfcomm0
rfcomm bind rfcomm0 00:0B:0D:6D:A1:E8

За да проверим, че получаваме данните коректно(данните са в текстов вид NMEA) изпълняваме това:
cat /dev/rfcomm0

Ако се вижда нещо от рода:
$GPGGA,235955.065,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*4D
$GPRMC,235955.065,V,0000.0000,N,00000.0000,E,,,150406,,,N*7E
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,235956.059,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*41
$GPRMC,235956.059,V,0000.0000,N,00000.0000,E,,,150406,,,N*72
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,235957.059,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*40
$GPGSA,A,1,,,,,,,,,,,,,,,*1E

То нашият GPS Reciever още не си е намерил сателитите и трябва да го изчакате известно време(на открито). След като си ги намери тези нули се превръщат в кординати разбира се.

Сега ще стартираме и gpsd които да обработва данните от rfcomm0

gpsd /dev/rfcomm0

Можем да проверим дали правилно приема данните със следната команда:

gpspipe -r

След като пуснахме основните приложения сега ще пуснем и Kismet. Неговата задача е да следи wireless мрежите и да ги записва във файл с техните кординати.

За да стартираме kismet като сървър трябва да укажем source type, а ако не го направим ще ни излезе следната грешка:

FATAL: Please configure at least one packet source.  Kismet will not function if no packet sources are defined in kismet.conf or on the command line.  Please read the README for more information about configuring Kismet

Това е защото не е зададен capture source type. За целта редактираме /etc/kismet/kismet.conf , ред "source":

source=iwl3945,wlan0,wlan0

Важен е първия аргумент където указваме какъв модул се зарежда за wireless картата, а в този случай е iwl3945

Сега ще накараме Kismet да логва всички wireless мрежи които намери + техните координати. За целта трябва да редактираме /etc/kismet/kismet.conf

waypoints=true
# GPSDrive waypoint file.  This WILL be truncated.
waypointdata=~/.gpsdrive/way.txt

Следващата стъпка е да накараме Kismet освен да логва и да говори.
Сега ще направим един малък тест на festival

echo "Hi from mpetrov.net -- Festival test"|festival --tts

Ако ви изплюе следната грешка "Linux: can't open /dev/dsp" то тогава извършете това по- долу:

Решение на проблема по- горе:

Редактира се файл (.festivalrc) или (/usr/share/festival/festival.scm):
vim ~/.festivalrc
и се добавя това:
(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Command "aplay -q -c 1 -t raw -f s16 -r $SR $FILE")

Сега след като имаме инсталиран и работещ festival ще направим промени в конфигурационния файл на kismet.
kismet.conf(за сървъра)

#Променя се от false на true
Speech=true
#Променя се от nato на speech
speech_type=speech

Ако не искаме да говори kismet сървъра, а нашият kismet клиент правим същите промени, но за "kismet_ui.conf"

Сега ще стартираме и gpsdrive. Неговата цел е да взима данните от Kismet ~/.gpsdrive/way.txt , да ги записва в MySQL базата(която ще създадем след малко) и да визуализира текущото ни местоположение на картата.

Първо трябва да създадем нашата база с таблиците които ще ползва gpsdrive изпълняваме:
geoinfo --create-db geoinfo --db-name geoinfo --db-user gast --db-password gast

Стартираме gpsdrive и какво ? Данните се записват и всичко е страхотно :)

Но на мен лично тази карта не ми допада особено и искам всичко това да го преместя в/у картата на GoogleEarth. За целта използвах едно готово python скриптче, което не работеше (нямаше и автор) и трябваше да пренапиша. Може да бъде изтеглено от тук: gpsdriveToGoogleEarth_mpetrov_net.py

изпълняваме python скриптчето което трябва да конвертира от gpsdrive към GoogleEarth:

python gpsdriveToGoogleEarth_mpetrov_net.py

Получавам следната грешка"
#:/tmp# python gpsdriveToGoogleEarth_mpetrov_net.py
Traceback (most recent call last):
File "gpsdriveToGoogleEarth_mpetrov_net.py", line 1, in <module>
import MySQLdb
ImportError: No module named MySQLdb

Това е защото очевидно нямам mysql модул за python. Сега ще го инсталирам:

apt-get install python-mysqldb

Сега като го изпълним и ще се генерира файл wireless_mpetrov_net.kml които ще вкараме в Google Earth, чрез импорт. Виждаме мрежите които сме картографирали по- рано.

В интерес на истината написах едно простичко bash скриптче което прави някои неща автоматизирано. То може да бъде изтеглено от тук:  War Driver 1.0

Потенциален проблем които може да възникне при употребата на Kismet
Проблем при стартиране на Kismet:

ERROR:  Unable to find room for logging files within 100 counts.  If you really are
logging this many times in 1 day, change log title or edit the source.
WARNING: Error disabling monitor mode: Failed to set channel 0 22:Invalid argument
WARNING: wlan0 (wlan0) left in an unknown state.  You may need to manually
restart or reconfigure it for normal operation.
WARNING: Sometimes cards don't always come out of monitor mode
cleanly.  If your card is not fully working, you may need to
restart or reconfigure it for normal operation.
Trying to wake networkmanager back up…
Kismet exiting.

Решението е :
rm -fr /var/log/kismet/*

Идеята на тази публикация е с учебна цел. Аз като автор не нося никаква отговорност за причинени от нея щети.

PS: Моля слагайте си WPA2 пароли с максимална дължина и сложност поне като минимално нещо което трябва да направите за свойте wireless мрежи.

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Повече информация за NMEA данните от gpsd

На всеки които е дъмпвал rfcomm0 или които и да е обвързван интерфейс със gpsd проекта е забелязал, че изхода е нормален текст или по- точно тип NMEA 0183. Всеки NMEA репорт е текстов пакет които започва със знака долар и завършва с carriage-return . Елементите от NMEA репорта са разделени със запетаи. Тук по- долу ще поставя информация за елементите(Не са на български, но става ясно кое за какво е).

За пример ще използвам този ред:

$GPRMC,225446.33,A,4916.45,N,12311.12,W,000.5,054.7,191194,020.3,E,A*68

Обяснение:

1 225446.33 Time of fix 22:54:46 UTC

2 A Status of Fix: A = Autonomous, valid;
D = Differential, valid; V = invalid

3,4 4916.45,N Latitude 49 deg. 16.45 min North

5,6 12311.12,W Longitude 123 deg. 11.12 min West

7 000.5 Speed over ground, Knots

8 054.7 Course Made Good, True north

9 181194 Date of fix 18 November 1994

10,11 020.3,E Magnetic variation 20.3 deg East

12 A FAA mode indicator (NMEA 2.3 and later)
A=autonomous, D=differential, E=Estimated,
N=not valid, S=Simulator, M=Manual input mode

13 *68 mandatory NMEA checksum

Ето още един пример за друг тип:

$GPGGA,123519,4807.038,N,01131.324,E,1,08,0.9,545.4,M,46.9,M, , *42

Обяснение:

1 123519 Fix taken at 12:35:19 UTC

2,3 4807.038,N Latitude 48 deg 07.038′ N

4,5 01131.324,E Longitude 11 deg 31.324′ E

6
1 Fix quality: 0 = invalid, 1 = GPS,
2 = DGPS,
3=PPS (Precise Position Service),
4=RTK (Real Time Kinematic) with fixed integers,
5=Float RTK, 6=Estimated, 7=Manual, 8=Simulator

7 08 Number of satellites being tracked

8 0.9 HDOP = Horizontal dilution of position

9,10 545.4,M Altitude, Metres above mean sea level

11,12 46.9,M Height of geoid (mean sea level) above WGS84 ellipsoid, in Meters

За повече информация:
1. Официален сайт на gpsd
2. Какво да знаем за gpsd (почти същото :)) )

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Да разчистим малко място в нашата *nix машина

На всеки се е случвало да няма място на неговата GNU/Linux машина. За да премахнем това което трябва можем да започнем от основните директории, но има и друг вариант които не е за отказване, а именно да намерим всички големи файлове. За да ги намерим ще използваме find или:

find / -type f -size +20000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

След това можем по- лесно да преценим кое да изтрием и кое не. Ако след това мястото отново не стига тогава вече можем да преглеждаме другите директории

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Активиране на Wireless карта 3945ABG [Golan] под GNU/Debian Lenny

Идеята тук е да се подкара Wireless картата 3945abg [Golan] на Debian Lenny. Картата е на лаптоп Vostro 1710 .

Когато се инсталира Debian Lenny модула които е необходим- "iwl3945" се зареди автоматично или ако не е може да се зареди "modprobe iwl3945" и би трябвало всичко да е наред. В моя случай обаче го зареждам и не виждам мрежи, а грешки от рода:

[22220.082625] iwl3945: iwlwifi-3945-1.ucode firmware file req failed: Reason -2
[22220.082625] iwl3945: Could not read microcode: -2
[22222.764809] ACPI: PCI Interrupt 0000:06:00.0[A] -> GSI 19 (level, low) -> IRQ 19
[22222.765289] firmware: requesting iwlwifi-3945-1.ucode
[22222.779531] iwl3945: iwlwifi-3945-1.ucode firmware file req failed: Reason -2
….

За целта трябва да инсталираме неговия firmware "firmware-iwlwifi" , но преди това трябав да добавим non-free хранилището :

echo 'deb http://http.us.debian.org/debian stable main contrib non-free' >> /etc/apt/sources.list
apt-get update && apt-get install firmware-iwlwifi

След като инсталирахме firmware-а на картата ще презаредим модула(ако е бил зареден вече):

rmmod iwl3945;
modprobe iwl3945;

Сега всичко работи страхотно :)

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Инсталиране на Adobe Flash Player под Debian Lenny

На мен лично не ми допада свободния Flash player и за целта си инсталирам Adobe Flash Player (макар и не свободен). За целта добавям backports храналище и изпълнявам следните команди:

echo 'deb http://www.backports.org/debian lenny-backports main contrib' >> /etc/apt/sources.list
wget -O -- http://backports.org/debian/archive.key | apt-key add --
gpg --keyserver hkp://subkeys.pgp.net --recv-keys 16BA136C
gpg --export | apt-key add --
apt-get update && apt-get install flashplugin-nonfree

Сега стартираме "IceWeasel" и отваряме някои flash анимация. Виждаме, че всичко работи добре :)

echo 'deb http://www.backports.org/debian lenny-backports main contrib' >> /etc/apt/sources.listecho 'deb http://www.backports.org/debian lenny-backports main contrib' >> /etc/apt/sources.list
VN:F [1.9.22_1171]
Rating: 3.5/5 (2 votes cast)
VN:F [1.9.22_1171]
Rating: -2 (from 2 votes)

Инсталиране на Nvidia драйвери под Debian Lenny

В тази публикация мисля да опиша как се инсталират Nvidia драйверите под Debian Lenny.

1. apt-get install build-essential linux-headers-$(uname -r)
2. cd /usr/src
3. ln -s linux-headers-$(uname -r) linux
4. wget  http://us.download.nvidia.com/XFree86/Linux-x86/190.53/NVIDIA-Linux-x86-190.53-pkg1.run
5. /etc/init.d/gdm stop
6. cd /usr/src && sh NVIDIA-Linux-x86-190.53-pkg1.run

След това приеме лиценза на Nvidia и драйверите ще ви се инсталират. Сега ще стартираме нашата графична среда с nvidia драйверите: /etc/init.d/gdm start .Още в началото дори виждаме логото на Nvidia. Ако са необходими повече допълнителни настройки избираме Applications-> System Tools -> NVIDIA X Server Settings

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Промяна на ограниченията в Windows XP и Windows server 2003

Един приятел скоро инсталирал XP на една машина и като администратор изтеглил куп неща в дял D: . След това направил потребителски имена на всички потребителите които ще ползват системата. Супер, но когато потребителя се логне в системата няма достъп до файловете в дял D:(тези които преди това моят приятел(като администратор) е добавил по- рано). За да предоставим достъп на потребителите в системата трябва да променим ограниченията на тези файлове чрез cacls:

D:\>cacls /?
Displays or modifies access control lists (ACLs) of files

CACLS filename [/T] [/E] [/C] [/G user:perm] [/R user […]]
[/P user:perm […]] [/D user […]]
filename      Displays ACLs.
/T            Changes ACLs of specified files in
the current directory and all subdirectories.
/E            Edit ACL instead of replacing it.
/C            Continue on access denied errors.
/G user:perm  Grant specified user access rights.
Perm can be: R  Read
W  Write
C  Change (write)
F  Full control
/R user       Revoke specified user's access rights (only valid with /E).
/P user:perm  Replace specified user's access rights.
Perm can be: N  None
R  Read
W  Write
C  Change (write)
F  Full control
/D user       Deny specified user access.
Wildcards can be used to specify more that one file in a command.
You can specify more than one user in a command.

Abbreviations:
CI -- Container Inherit.
The ACE will be inherited by directories.
OI -- Object Inherit.
The ACE will be inherited by files.
IO -- Inherit Only.
The ACE does not apply to the current file/directory.

В този пример ще дадем пълни права на потребител "dr_nikolov":

cacls d:/*.* /T /E /P dr_nikolov:f

Сега ще "разтълкувам" предната команда:

1. calcs --  Името на приложението което използваме за промяна на ограниченята
2. "d:/*.*" -- Това са всички директории и файлове които се намират във дял D:
3. /T -- Рекурсивно променя ограниченията на всички файлове и директории, вкл. и техните под директории
4. /E -- Редактиране на ограниченията
5. /P dr_nikolov:f -- Тук даваме "Full Control" или пълен достъп до файловете на потребител "dr_nikolov"

Това е всичко :)

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)