Все ленты — последние статьи

10 шагов к терминальному серверу (RDP + NX) на Ubuntu с AD авторизацией (http://habrahabr.ru/)

Убунтариум*, Системное администрирование*, Linux*

Цель этой статьи показать Вам, что альтернатива продуктам MS есть!

Возможна поддержка ПО MS, 1С и т.п., в пределах возможностей wine или wine@etersoft

Исходные ресурсы

Xubuntu 12.04 LTS amd64 Desktop с доступом в интернет
Windows 2008 в качестве сервера авторизации (AD test.lan, ip 192.168.100.1), сетевого хранилища общих папок и профилей пользователей.

Подробнее: 10 шагов к терминальному серверу (RDP + NX) на Ubuntu с AD авторизацией (http://habrahabr.ru/)

Linux это

Linux ([ˈlɪnəks]?[1][2] или [ˈlɪnʊks]?[3][4][5]), также Ли́нукс — общее название Unix-подобных операционных систем, основанных на одноимённом ядре. Ядро Linux создаётся и распространяется в соответствии с моделью разработки свободного и открытого программного обеспечения. Поэтому общее название не подразумевает какой-либо единой «официальной» комплектации Linux; они распространяются в основном бесплатно в виде различных готовых дистрибутивов, имеющих свой набор прикладных программ и уже настроенных под конкретные нужды пользователя.

На начальном этапе Linux бесплатно разрабатывался только энтузиастами-добровольцами, но с успехом Linux и его массовым коммерческим использованием дорабатывать ОС и вносить свой вклад стали и компании, со временем став значительной силой. Подавляющее большинство ПО в современных дистрибутивах по-прежнему доступно по свободным лицензиям, как правило, за исключением небольшого количества проприетарных компонентов. В 2008 году расчёты показывали, что для того, чтобы «с нуля» разработать систему, аналогичную Fedora 9, потребовалось бы затратить 10,8 млрд долл.[6] Совокупная себестоимость ядра Linux оценена в более чем 1 млрд евро (около 1,4 млрд долл.). Только за 2008 год себестоимость ядра Linux увеличилась на 225 млн евро. В системе Linux воплощён труд в эквиваленте 73 тыс. человеко-лет[7][8].

Консольные комманды

 

Общие команды Linux

 

uname -a

Показать версию ядра Linux;

arch

отобразить архитектуру компьютера

lsb_release -a

На экран выводиться информация о версии операционной системы Debian и оснваных на ней дистрибутивах;

man hier

Описание иерархии файловой системы (для чего нужна каждая директория в linux);

clear

Очищение экрана терминала;

wall Привет

Отправляет на терминалы других пользователей сообщение "Привет";

date

Показывает текущую дату и время;

cal -3

Показывает в удобной форме предыдущий, текущий и последующий месяц (типо календарь);

uptime

Показать текущее время и работу системы без перезагрузки и выключения;

hostname

Показать сетевое имя компьютера;

whois linux.org

Показать информацию о доменом имени linux.org

http://your.proxy

Изменить переменной окружения http_proxy, для использования интернета через proxy-сервер;

http://itshaman.ru/images/logo_white.png

Скачать файл http://itshaman.ru/images/logo_white.png в текущую папку;

http://www.linux.org/

Копирование сайта целиком и конвертирование ссылок для автономной работы. Копирование происходит на 5 уровней в глубину;

pppconfig

Создание и настройка Dial-Up соединения для выхода в Интернет по модему;

pppoeconf

Создание и настройка выхода в Интернет через ADSL-модем;

history | tail -50

Показать последние 50 набранных команд;

passwd

Меняет пароль текущего пользователя;

shutdown -h hours:minutes &

запланировать выключение системы

 

shutdown -c отменить запланированное выключение

shutdown -r now перезагрузить систему

 

shutdown -h now

Выход из Linux;

poweroff

Выход из Linux;

last reboot

Cтатистика перезагрузок;

winecfg

Настройка Wine — НЕэмулятор WinAPI

host itshaman.ru

Показывает IP-адрес введенного сайта;

init 0

выключить систему

telinit 0

выключить систему

logout

завершить сессию

whoami

имя текущего пользователя

sudo dmidecode -q

информация об аппаратном обеспечении системы, в соответствии с SMBIOS/DMI.

lspci -tv

 

PCI устройства

lsusb -tv

USB устройства

lsmod

Отобразит список загруженных модулей ядра.

tail /var/log/dmesg

Отобразит сообщения ядра полученные при последней загрузке системы.

tail /var/log/messages

Покажет все сообщения о ходе загрузки системы, а также другие сообщения о статусе работающей системы.

 

 

 

2. Команды Linux: работы с файлами и директориями

2.1 Директории и файлы

 

pwd

Выводит текущий путь

ls

Выводит список файлов и каталогов по порядку;

ls -F показать файлы и директории

ls -l показать подробности о файлах и директориях

ls -a показать скрытые файлы

sed

Замена подстроки во всех файлах папки

Чтобы заменить слово во всех файлах определенной папки, с помощью sed
sed -i 's/что_менять/на_что_менять/' /path/to/files/*
Недавно я переносил папку своего веб-сервера, в котором установлено более 10 хостов. И чтобы поправить пути во всех файлах, я воспользовался этой командой.
sed -i 's/docs/sites/' /etc/apache2/sites-available/*

ls -laX

Выводит форматированный список всех файлов и директорий, включая скрытые;

touch /home/primer2

Создание пустого файла /home/primer2

cat /proc/cpuinfo информация о процесоре

cat /proc/interrupts прерывания

cat /proc/meminfo вся информация которая относится к памяти

cat /proc/swaps вся информация про swap

cat /proc/version версия ядра и другая информация

cat /proc/net/dev сетевые интерфейсы и статистика

cat /proc/mounts смонтированные устройства

cat /proc/partitions доступные разделы

cat /proc/modules загруженные модули ядра

 

cat /home/primer2

Показать содержимое файла /home/primer2

tail /var/log/messages

Выводит конец файла. Удобно при работе с логами и большими файлами;

nano /home/primer2

Редактирование файла /home/primer2

gedit /home/primer2

Вторая команда Linux для редактирования файла;

echo "Последняя строчка" | sudo tee -a /home/primer2

Добавление к концу файла "Последняя строчка" в файл /home/primer2

cp /home/Mut@NT/primer.txt /home/primer.txt

Копирует /home/Mut@NT/primer.tx в home/primer.txt

/home/Mut@NT/primer.txt

Cоздает символическую ссылку /home/primer к файлу /home/Mut@NT/primer.txt;

mkdir /home/Mut@NT/shaman

Создание директории с именем shaman;

rmdir /home/Mut@NT/shaman

Удаление директории с именем shaman;

/home/Mut@NT/shaman

Удаление директории с вложенными фалами;

cp -la /dir1 /dir2

Копирование директорий;

mv /dir1 /dir2

Переименование директории;

/home/Mut@NT/

Выводит на экран размер заданной директории. Можно использовать для определения размера файлов;

locate primer

Поиск всех файлов с именем primer

find / -name '*html' -print | xargs grep -l 'www.example.com' | less -O pages

команда xargs принимает на вход имена файлов от find и последовательно запускает grep -l для обработки каждого файла, вне зависимости от того, сколько файлов нашлось. Команда grep -l печатает имя файла, если в нем удалось в нем обнаружить указанный фрагмент текста, а затем прекращает анализ этого файла. Утилита less позволяет вам просматривать результаты по страницам и сохранить список в файл с названием pages. Результатом работы этой команды будет список файлов, которые содержат строку «www.example.com»

find / -name file1 — найти файлы и директории с именем file1. Поиск начать с корня (/)
find / -user user1 — найти файл и директорию принадлежащие пользователю user1. Поиск начать с корня (/)
find /home/user1 -name "*.bin" — найти все файлы и директории, имена которых оканчиваются на '. bin'. Поиск начать с '/ home/user1'*
find /usr/bin -type f -atime +100 — найти все файлы в '/usr/bin', время последнего обращения к которым более 100 дней
find /usr/bin -type f -mtime -10 — найти все файлы в '/usr/bin', созданные или изменённые в течении последних 10 дней
find / -name *.rpm -exec chmod 755 '{}' \; — найти все фалы и директории, имена которых оканчиваются на '.rpm', и изменить права доступа к ним
find / -xdev -name "*.rpm" — найти все фалы и директории, имена которых оканчиваются на '.rpm', игнорируя съёмные носители, такие как cdrom, floppy и т.п.
locate "*.ps" — найти все файлы, содержащие в имени '.ps'. Предварительно рекомендуется выполнить команду 'updatedb'
whereis halt — показывает размещение бинарных файлов, исходных кодов и руководств, относящихся к файлу 'halt'

 

 

2.2 Права доступа

chmod 0777 /home/

[sudo] Изменение прав доступа к директории только для /home. 0777 — разрешение на чтение/запись/исполнение для всех групп;

chmod -R 0777 /home/

[sudo] Рекурсивное изменение прав доступа к директории /home. 777 — разрешение на чтение/запись/исполнение для всех групп. Все вложенные директории и файлы будут иметь права 0777;

 

chmod ugo+rwx directory1

добавить полномочия на директорию

chmod go-rwx directory1

отобрать у группы и всех остальных все полномочия на директорию directory1.

 

 

chown Mut@NT:ITShaman /home/primer.txt

Изменение владельца и группы только для файла /home/primer.txt;

Mut@NT /home/

Изменение владельца для всего содержимого директории /home;

 

600 Файл недоступен

644 Доступ всем для чтения (например, документы HTML)

666 Файл может прочитан и модифицирован (для файлов HTML, изменяемых посредством скриптов)

755 Файл может быть прочитан и запущен кем угодно (например, скрипты)

777 Доступен для записи и запуска кому угодно (не рекомендуется)

s -lh

просмотр полномочий на файлы и директории в текущей директории

ls /tmp | pr -T5 -W$COLUMNS

вывести содержимое директории /tmp и разделить вывод на пять колонок

directory1 ugo(User Group Other)+rwx(Read Write eXecute)

всем полные права. Аналогичное можно сделать таким образом chmod 777 directory1

chown user1 file1

назначить владельцем файла file1 пользователя user1

chown -R user1 directory1

назначить рекурсивно владельцем директории directory1 пользователя user1

chown user1:group1 file1

сменить владельца и группу владельца файла file1

chmod u+s /bin/binary_file

назначить SUID-бит файлу /bin/binary_file. Это даёт возможность любому пользователю запускать на выполнение файл с полномочиями владельца файла.

chmod u-s /bin/binary_file

снять SUID-бит с файла /bin/binary_file.

 

chmod g+s /home/public — назначить SGID-бит директории /home/public.
chmod g-s /home/public — снять SGID-бит с директории /home/public.
chmod o+t /home/public — назначить STIKY-бит директории /home/public. Позволяет удалять файлы только владельцам
chmod o-t /home/public — снять STIKY-бит с директории /home/public

 

 

chgrp group1 file1

сменить группу-владельца файла file1 на group1

 

Специальные атрибуты файлов

chattr +a file1 — позволить открывать файл на запись только в режиме добавления
chattr +c file1 — позволяет ядру автоматически сжимать/разжимать содержимое файла.
chattr +d file1 — указавет утилите dump игнорировать данный файл во время выполнения backup'а
chattr +i file1 — делает файл недоступным для любых изменений: редактирование, удаление, перемещение, создание линков на него.
chattr +s file1 — позволяет сделать удаление файла безопасным, т.е. выставленный атрибут s говорит о том, что при удалении файла, место, занимаемое файлом на диске заполняется нулями, что предотвращяет возможность восстановления данных.
chattr +S file1 — указывает, что, при сохранении изменений, будет произведена синхронизация, как при выполнении команды sync
chattr +u file1 — данный атрибут указывает, что при удалении файла содержимое его будет сохранено и при необходимости пользователь сможет его восстановить
lsattr — показать атрибуты файлов

 

 

Команды Linux: работа с архивами

 

tar cf primer.tar /home/primer.txt

Создать tar-архив с именем primer.tar содержащий /home/primer.txt;

tar czf primer.tar.gz /home/primer.txt

Cоздать tar-архив с сжатием Gzip по имени primer.tar.gz;

tar cjf primer.tar.bz2 /home/primer.txt

Cоздать tar-архив с сжатием Bzip2 по имени primer.tar.bz;

tar xf primer.tar

Распаковать архив primer.tar в текущую папку;

tar xzf primer.tar.gz

Распаковать tar-архив с Gzip;

tar xjf primer.tar.bz

Распаковать tar-архив с Bzip2;

 

 

 

 

 

4.1 Просмотр установленных пакетов

rpm -qa

Показать список установленных пакетов RPM в системе;RPM — дистрибутивы

dpkg -l |more

DEB — дистрибутивы Показать список установленных пакетов DEB в системе;

apt-cache search имя пакета

Ищет в индексах наличее доступного пакета и выводит на экран краткую информацию о нужном пакете (очень полезная команда для поиска и установки программ из консоли);

apt-cache showpkg имя пакета

Полная информация о указанном пакете;

 

 

 

4.2 Установка и удаление пакетов

RPM — дистрибутивы

rpm -i pkgname.rpm

Установка RPM пакета pkgname.rpm;

rpm -e pkgname

Удаление RPM пакета pkgname;

dpkg -i *.rpm

Установка всех пакетов в директории;

DEB — дистрибутивы

apt-get update

Обновление списка доступных пакетов из Internet;

apt-get upgrade

Обновление доступной версии установленных пакетов в системе;

apt-get install pkgname

Установка DEB пакета pkgname;

apt-get remove pkgname

Удаление DEB пакета pkgname;

dpkg -i *.deb

Установка всех пакетов в директории;

 

Команды Linux: мониторинг работы и просмотр логов.

top

Информация в реальном времени о загруженных процессах, потребление ОЗУ;

pstree

Отобразит иерархический список запущенных процессов.

htop

Более расширенная on line-статистика о загруженных процессах (разработчик http://htop.sourceforge.net);

dmesg

Показывает log-файл загрузки ОС и нахождения новых устройств;

mpstat 1

Показывает расширенную статистику потребления ресурсов системы в процентах (для некоторых дистрибутивов необходима установка пакета sysstat);

vmstat 2

Показать расширенную статистику по использованию виртуальной памяти;

iostat 2

Показать расширенную статистику прерываний по устройствам;

 

Команды Linux: информация об устройствах.

lsdev

информация об уже установленных устройствах (в некоторых дистрибутивах требует доставить пакет procinfo);

cat /proc/cpuinfo

Показать полную информацию о модели процессора (частота, поддерживаемые инструкции и т.д.);

cat /proc/meminfo

Показать расширенную информацию о занимаемой оперативной памяти (MemTotal, MemFree, Buffers, Cached, SwapCached,HighTotal, HighFree, LowTotal и т. д.);

grep SwapTotal /proc/meminfo

Показать размер раздела выделенного под swap;

watch -n1 'cat /proc/interrupts'

Показать информацию о прерываниях;

free -m

Информация о используемой и свободной ОЗУ и Swap-файле (-m указывает, что отображать нужно в Мб);

lshal

Показать список всех устройств и их параметров;

cat /proc/devices

Показать все устройства в системе (названия взяты из директории /proc/devices);

lspci -tv

Показать обнаруженные PCI-устройства;

lsusb -tv

Показать обнаруженные USB-устройства;

dmidecode

[sudo] Показать информацию о версии BIOS компьютера;

gtf 1024 768 75

Выводит строку ModeLine для Вашего монитора на параметрах экрана 1024x768x75Hz;

Команды Linux: жесткие диски и файловая система. Информация о файловой системе и жестком диске

fdisk -l

Информация о всех подключенных жестких и сменных дисках;

hdparm -I /dev/sda

[sudo] Полная информация о IDE/ATA жестких дисках;

smartctl -a /dev/sda1

Выводит SMART-информацию о разделе жесткого диска /dev/sda1 (необходима установка пакета smartmontools);

blkid

[sudo] Выводит UUID всех доступных накопителей информации в системе;

hdparm -tT /dev/sda

sudo] Показывает производительность жесткого диска;

 

 

Монтирование разделов жесткого диска

mount | column -t

Показывает полную информацию о примонтированных устройсвах;

cat /proc/partitions

Показывает только примонтированные разделы жесткого диска;

df

Показывает свободное место на разделах;

mount /dev/sda1 /mnt

[sudo] Монтирует раздел /dev/sda1 к точке монтирования /mnt;

mount -t auto /dev/cdrom /mnt/cdrom

[sudo] Монтирует большинство CD-ROM`ов;

mount /dev/hdc -t iso9660 -r /cdrom

[sudo] Монтирует IDE CD-ROM;

mount /dev/scd0 -t iso9660 -r /cdrom

[sudo] Монтирует SCSI CD-ROM;

mount -t ufs -o ufstype=ufs2,ro /dev/sda3 /mnt

[sudo] Монтирование FreeBSD разделов в Linux;

mount -t smbfs -o username=vasja,password=pupkin //pup/Video

[sudo] Монтирование сетевых ресурсов (SMB);

mount -t iso9660 -o loop /home/file.iso /home/iso

[sudo] Монтирование ISO-образов;

mount /dev/sdb1 -t vfat -o rw /mnt

[sudo] Монтирование раздел с файловой системой FAT 16/32 (к примеру USB-накопитель) к точки монтирования /mnt с возможностью записи;

umount /mnt

[sudo] Отмонтирует раздел от точки монтирования /mnt;

fuser -km /mnt/hda2

принудительное размонтирование раздела. Применяется в случае, когда раздел занят каким-либо пользователем

umount -n /mnt/hda2

выполнить размонитрование без занесения информации в /etc/mtab. Полезно когда файл имеет атрибуты «только чтение» или недостаточно места на диске

 

mount /dev/fd0 /mnt/floppy — монтировать флоппи-диск
mount /dev/hdc /mnt/cdrecorder - монтировать CD-R/CD-RW или DVD-R/DVD-RW(+-)
mount -o loop file.iso /mnt/cdrom - смонтировать ISO-образ
mount -t vfat /dev/hda5 /mnt/hda5 — монтировать файловую систему Windows FAT32
mount -t smbfs -o username=user,password=pass //winclient/share /mnt/share — монтировать сетевую файловую систему Windows (SMB/CIFS)
mount -o bind /home/user/prg /var/ftp/user — «монтирует» директорию в директорию (binding). Доступна с версии ядра 2.4.0. Полезна, например, для предоставления содержимого пользовательской директории через ftp при работе ftp-сервера в «песочнице» (chroot), когда симлинки сделать невозможно. Выполнение данной команды сделает копию содержимого /home/user/prg в /var/ftp/user

 

Команды Linux: настройка сети. Конфигурация сети

ifconfig

Показать параметры всех сетевых;

ifconfig eth0

Показать параметры сетевого интерфейса eth0;

ethtool eth0

[sudo] Показывает состояние сетевого интерфейса eth0 (для некоторых дистрибутивов требуется установка пакета ethtool). Команда ethtool применяется только для проводных подключений, не работает с беспроводными интерфейсами;

ethtool -s eth0 speed 100 duplex full autoneg off

[sudo] Принудительно задать скорость сетевому интерфейсу 100Mbit и режим Full duplex и отключить автоматическое определение;

ifconfig eth0 192.168.50.254 netmask 255.255.255.0

Задать основной IP адрес сетевому интерфейсу eth0;

ip addr add 192.168.50.254/24 dev eth0

Задать основной IP адрес сетевому интерфейсу eth0;

ifconfig eth0:0 192.168.51.254 netmask 255.255.255.0

Задать дополнительный IP адрес сетевому интерфейсу eth0;

ip addr add 192.168.51.254/24 dev eth0 label eth0:1

Задать дополнительный IP адрес сетевому интерфейсу eth0;

ifconfig eth0 up

[sudo] Запустить сетевой интерфейс eth0;

ifconfig eth0 down

[sudo] Отключить сетевой интерфейс eth0;

ifconfig eth0 hw ether 00:01:02:03:04:05

Смена MAC адреса;

/etc/init.d/dhcpd restart

[sudo]# Перезагрузка DHCP клиента;

 

 

Маршрутизация , netstat

route -n

Выводит на экран таблицу маршрутизации;

netstat -rn

Выводит на экран таблицу маршрутизации;

netstat -p --inet

Показать активные соединения

netstat -lp --inet

Показать прослушиваемые порты в системе (и кто их слушает)

netstat -atun | awk '{print $5}' | cut -d: -f1 | sed -e '/^$/d' |sort | uniq -c | sort -n

 

time netstat -at

 

 

 

Управление портами (брандмауэр)

netstat -an | grep LISTEN

Показывает список всех открытых портов;

lsof -i

Показывает список всех открытых портов в сеть Internet;

netstat -tup

[sudo] # Активные соединения с интернетом;

socklist

Показывает все открытые сокеты;

netstat -anp --udp --tcp | grep LISTEN

[sudo] # Список приложений, которые открывают порты;

iptables -L -n -v

[sudo] Показывает статус firewall (статус iptables);

iptables -P INPUT ACCEPT

[sudo] Открывает доступ ко всем портам;

iptables -P FORWARD ACCEPT

[sudo] Открывает доступ ко всем портам;

iptables -P OUTPUT ACCEPT

[sudo] Открывает доступ ко всем портам;

iptables -X

[sudo] Удаляет все цепочки;

 

 

Управление NAT

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Поднятие" NAT на интерфейсе eth0

iptables -t nat -A PREROUTING -p tcp -d 78.31.70.238 --dport 20022 -j DNAT --to 192.168.16.44:22

Перенаправление порта 20022, который использется для ssh;

iptables -t nat -A PREROUTING -p tcp -d 78.31.70.238 --dport 993:995 -j DNAT --to 192.168.16.254:993-995

Перенаправление диапазона портов 993-995;

iptables -L -t nat

Проверка статуса NAT;

9. Команды Linux: создание и запись ISO образов.

cdrecord -scanbus

Показывает все доступные CD-ROM

dd if=/dev/hdc of=/tmp/mycd.iso bs=2048 conv=notrunc

Создание ISO образов с диска CD-ROM;

10. Команды Linux: пользователи и группы.

id

Показывает сводную информацию по текущему пользователю (логин, UID, GID, группы);

finger Mut@NT

Показать информацию о пользователе Mut@NT;

last

Показывает последних зарегистрированных пользователей;

who

Показывает имя текущего пользователя и время входа;

useradd Mut@NT

Добавление нового пользователя Mut@NT

useradd -c "Nome Cognome" -g admin -d /home/user1 -s /bin/bash user1 — создать пользователя user1, назначить ему в качестве домашнего каталога /home/user1, в качестве shell'а /bin/bash, включить его в группу admin и добавить комментарий Nome Cognome
useradd user1 — создать пользователя user1

 

groupadd ITShaman

Добавление группы ITShaman;

groupadd group_name — создать новую группу с именем group_name
groupdel group_name — удалить группу group_name
groupmod -n new_group_name old_group_name — переименовать группу old_group_name в new_group_name

 

usermod -a -G ITShaman Mut@NT

Добавляет пользователя Mut@NT в группу ITShaman (для Debian-подобных дистрибутивов);

groupmod -A Mut@NT ITShaman

# Добавляет пользователя Mut@NT в группу ITShaman (SuSE);

userdel Mut@NT

Удаление пользователя Mut@NT;

userdel -r user1 — удалить пользователя user1 и его домашний каталог

 

groupdel ITShaman

Удаление группы ITShaman;

pwck

проверить корректность системных файлов учётных записей. Проверяются файлы /etc/passwd и /etc/shadow

grpck

проверяет корректность системных файлов учётных записей. Проверяется файл/etc/group
newgrp [-] group_name — изменяет первичную группу текущего пользователя. Если указать «-», ситуация будет идентичной той, в которой пользователь вышил из системы и снова вошёл. Если не указывать группу, первичная группа будет назначена из /etc/passwd

 

Команды Linux: работа с процессами.

Все запущенные процессы имеют уникальные номера — PID.

ps axjf

Показать все загруженные процессы;

pgrep -l sshd

Показать PID определенного процесса — sshd;

echo $$

Показать PID вашей оболочки;

fuser -va 22/tcp

Показать PID процесса использующий порт 22;

fuser -va /home

Показывает PID процесса имеющего доступ к /home;

lsof /home

Показывает список процессы, которые используют /home;

killall 0 httpd

Выводит на экран текущее состояние процесса httpd;

kil 4712

«Убить» процесс с PID 4712;

killall TERM 4712

[sudo] Посылает процессу с PID`ом 4712 сигнал TERM — завершить процесс;

killall HUP httpd

[sudo] Посылает процессу с именем httpd сигнал HUP — остановить процесс;

fuser -k -TERM -m /home

[sudo] “Убить” все процессы имеющие доступ к /home;

lsof -p $$

Отобразит какой процесс работает с файлом или каталогом.

lsof /home/user1

Отобразит какой процесс работает с файлом или каталогом в конкретной директории.

 

Важные сигналы посылаемые процессам:

  • 1 — HUP остановить процесс

  • 2 — INT прервать процесс

  • 3 — QUIT выйти

  • 9 — KILL “убить” процесс

  • 15 — TERM завершить процесс

Команды Linux: Runlevels.

После загрузки ядра Linux начинают загружаться различные демоны и программы, такие как NetworkManager, Evolution и т. д., результат которых мы видим у себя после загрузки на рабочем столе. Загрузка каждой службы осуществляется скриптом. Все скрипты лежат в /etc/init.d. Runlevels — это целое число, которое определяет “уровень загрузки”.

Уровни загрузки” бывают:

  • Runlevels=0 Выключение компьютера;

  • Runlevels=1 режим Single-User;

  • Runlevels=2 Текстовый режим без поддержки сети;

  • Runlevels=3 Текстовый режим с поддержкой сети;

  • Runlevels=4;

  • Runlevels=5 Графический режим;

  • Runlevels=6 Перезагрузка компьютера.

То есть скрипты, которые должны загружаться только в текстовом режиме с поддержкой сети, имеют Runlevels равный 3.

Более простой вариант настройки:

sysv-rc-conf

[sudo] Очень удобная настройка Runlevels (необходима установка пакета sysv-rc-conf);

Ручной вариант настройки:

chkconfig --list

Показывает список всех скриптов с соответствующими им Runlevels;

chkconfig --list udev

Показывает разрешенные Runlevels только отдельного скрипта, в нашем случае udev;

update-rc.d udev defaults

[sudo] Выставление скрипту udev значений Runlevels по-умолчанию (для Debian-подобных дистрибутивов);

chkconfig udev --level 35 on

[sudo] Добавление скрипту udev Runlevels 3 и 5;

update-rc.d udev start 20 2 3 4 5 . stop 20 0 1 6

[sudo] Изменить параметры для скрипта udev (для Debian-подобных дистрибутивов);

chkconfig udev off

[sudo] Отключение у udev всех Runlevels;

update-rc.d -f udev remove

[sudo] Отключение у udev всех Runlevel (для Debian-подобных дистрибутивов);

13. Команды Linux: Работа с ядром и модулями.

uname -a

Показать версию ядра Linux;

uname -m покажет архитектуру машины

uname -r версия ядра

 

lsmod

Список всех модулей загруженных в ядро

modprobe isdn [sudo]

Загрузка модуля на примере isdn;

make

Создание сжатого образа ядра системы;

make modules

Компиляция модуля;

make modules_install

[sudo] Установка модуля;

make install

[sudo] Установка в ядро системы;

14. Команды Linux: работа с LiveCD.

chroot /mnt

[sudo] смена root-окружения на /mnt. После этого коневой раздел, примонтировнный к /mnt, будет использоваться как родной;

 

15. Команды Linux: конвертирование различной информации;

15.1 Конвертирование текста

iconv -l

Выводит список всех доступных кодировок;

iconv -f cp1251 -t UTF-8 -o file_cp1251.txt > file_utf8.txt

Смена кодировки. Был файл file_cp1251.txt с кодировкой cp1251, а в итоге получился файл file_utf8.txt с кодировкой utf8;

15.2 Конвертирование PDF в JPEG

convert name.pdf name-%03d.jpg

Конвертируется name.pdf в постраничные JPEG изображения (в некоторых дистрибутивах необходимо установить пакет imagemagick);

convert *.jpeg name.pdf

Конвертируются JPEG изображения в PDF (в некоторых дистрибутивах необходимо установить пакет imagemagick);

15.3 Конвертирование видео

mencoder -o videoout.avi -oac mp3lame -ovc lavc -srate 11025 -channels 1 -af-adv force=1 -lameopts preset=medium -lavcopts vcodec=msmpeg4v2:vbitrate=600 -mc 0 vidoein.AVI

15.4 Конвертирование аудио

 

cdparanoia -B

Копирование треков с AudioCD в текущую директорию wav-файлами;

lame -b 256 in.wav out.mp3

Конвертирование wav-файлов в mp3 с качеством 256 kb/s;

oggenc in.wav -b 256 out.ogg

Конвертирование wav-файлов в Ogg Vorbis с качеством 256 kb/s;

16. Команды Linux: печать на принтере.

export PRINTER=lbp2900

Выбор принтера по-умолчанию. В примере выбран принтер Canon LBP-2900;

lpr #2 name.txt

Распечатать на принтере Canon LBP-2900 две копии файла name.txt;

lprm -

Удаление всех задач с принтера по-умолчанию.

 

 

 

Работа с дисками

df -h

Показать все смонтированные устройства хранения данных

ls -lSr |more

покажет все файлы в текущей директории в отсортированном по размеру списке

du -sh dir1

Покажет сколько дискового пространства занимает конкретная директория “dir1″

smartctl

smartctl -A /dev/hda Вывод информации, поддерживает ли диск SMART.

smartctl -s on /dev/hda Включаем SMART, если выключен.

smartctl -c /dev/hda Проверяем какие возможности SMART поддерживает диск и какие установлены параметры.

smartctl -H /dev/hda Статус состояния диска и список атрибутов проверок.

smartctl -A /dev/hda Статус состояния диска и список атрибутов проверок.

smartctl -t offline /dev/hda Запускаем offline тест.

smartctl -l selftest /dev/hda Смотрим, есть ли ошибки.

smartctl -r ioctl -i /dev/hda Смотрим более детально.

badblocks -v /dev/hda

Проводит проверку поверхности диска на читаемость и записываемость.

fsck /dev/hda

Проводит проверку диска и пытается по возможности восстановить работоспособность дисковой подсистемы.

 

 

СЕТЬ.

 

Iptraf

Снифер

Iftop

Снифер

tcptrack -i eth1

Снифер

Ss ; ss -l

Снифер

iftraf

Снифер

ssh -X Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра..1.1">Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра..1.1 wireshark

Снифер

EtherApe

Снифер

nmap

 

dhclient eth0

Включить на интерфейсе eth0 режим dhcp

route -n

Показать таблицу роутинга

route add -net 0/0 gw IP_адрес_шлюза

Задать шлюз

route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1

настроить статический маршрут для сети 192 .168.0.0/16

route del 0/0 gw IP_адрес_шлюз

удалить статический маршрут

echo “1” > /proc/sys/net/ipv4/ip_forward

активировать ip маршрутизацию

hostname Показать имя хоста

ip link show

Показать информацию о всех сетевых интерфейсах

ip link show eth0 Показать информацию интерфейса eth0

mii-tool eth0

Показать параметры интерфейса eth0

ethtool eth0 Показать статистику интерфейса eth0

 

 

Иные комманды

 

sudo apt-get clean

очистит локальный кеш пакетов.

sudo aptitude purge Wormux — Удалить пакеты и их файлы конфигурации.

sudo apt-get purge Ещё можно попробовать sudo apt-get autoremove/ sudo aptitude purge **** — Удалить пакеты и их файлы конфигурации.

lshw

список оборудования

 

 

 

 

 

 

 

 

 

ifconfig Показать конфигурацию всех сетевых интерфейсов

ifconfig eth0 Показать конфигурацию сетевого интерфейса eth0

ifup eth0 Активировать сетевой интерфейс eth0

ifdown eth0 Отключить сетевой интерфейс eth0

ifconfig eth0 192.168.1.1 netmask 255.255.255.0 Задать конфигурацию IP адреса

ifconfig eth0 promisc Позволяет получать все пакеты, независимо от того были ли они предназначены для хоста или нет. (Это позволяет анализировать сетевой трафик.)

 

 

 

21 порт => FTP

22 порт => SSH

23 порт => Telnet

25 порт => Порт SMTP отвечающий за передачу почты

43 порт => Порт клиента WHOIS

53 порт => Система преобразования имени хоста

80 порт => Стандартный порт HTTP Веб севрера

110 порт => Порт POP отвечает за приём почты

995 порт => Защищённое SSL/TLS соединение POP

143 порт => IMAP Протокол приёма почты

993 порт => Защищённое соединение IMAP

443 порт => Защищённое HTTP соединение (SSL для https:// )

3306 порт => Mys QL? Сервер

631 порт => Протоколы сетевой печати

5900 порт => Система удаленного доступа к компьютеру VNC (Virtual Network Computing)

 

 

 

Планирование заданий

 

CronTab — это утилита позволяющая в определенный день и час автоматически запускать различные программы или скрипты.

crontab -e Изменит Ваш crontab файл или создаст новый.

crontab -l Отобразит содержимое существующего crontab файла.

crontab -r Удалит Ваш crontab файл.

crontab -v Отобразит когда в последний раз Вы изменяли свой crontab файла.

Структура файла с заданиями для CronTab.

 

* * * * * command

— — — — — | | | | |

| | | | +—– День недели (0 — 6) (Sunday=0)

| | | +——- Месяц года (1 — 12)

| | +——— День месяца (1 — 31)

| +———– Час дня запуска (0 — 23)

+————- Минута часа для запуска (0 — 59)

 

command запускаемая программа или скрипт.

 

Значок * задаёт параметр (день, год, месяц, час).

 

Пример

 

01 * * * * command запуск программы или скрипта каждый час в одну минуту.

 

* 6 * * * command запуск программы или скрипта каждый день в 6 часов утра.

 

Значения могут быть числом, трех-буквенным названием, а так же диапазоном например запись «1-5» в поле day будет означать «с понедельника по пятницу». Значения могут отделяться запятыми: «1,15,31» в поле day будет запускать указанную команду 1-го, 15-го и 31-го числа каждого месяца.

Все пять полей времени допускают использование символа звездочка — «*», который обозначает «использовать любое допустимое значение» для этого поля.

Файлы с заданиями можно найти тут:

/usr/lib/cron

Основной каталог команд, связанных со временем.

/usr/spool/cron/crontabs

Каталог файлов регулярных действий.

/usr/lib/cron/log

Учетная информация.

/usr/lib/cron/cron.allow

Список пользователей, которым разрешено выполнять команду crontab.

/usr/lib/cron/cron.deny

Список пользователей, которым запрещено выполнять команду crontab.

 

 

 

 

Манипуляции с текстом

cat file_originale | [operation: sed, grep, awk, grep и т.п.] > result.txt - общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в новый
cat file_originale | [operazione: sed, grep, awk, grepи т.п.] >> result.txt — общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в существующий файл. Если файл не существует, он будет создан
grep Aug /var/log/messages — из файла '/var/log/messages' отобрать и вывести на стандартное устройство вывода строки, содержащие «Aug»
grep ^Aug /var/log/messages — из файла '/var/log/messages' отобрать и вывести на стандартное устройство вывода строки, начинающиеся на «Aug»
grep [0-9] /var/log/messages — из файла '/var/log/messages' отобрать и вывести на стандартное устройство вывода строки, содержащие цифры
grep Aug -R /var/log/* — отобрать и вывести на стандартное устройство вывода строки, содержащие «Augr», во всех файлах, находящихся в директории /var/log и ниже
sed 's/stringa1/stringa2/g' example.txt — в файле example.txt заменить «string1» на «string2», результат вывести на стандартное устройство вывода.
sed '/^$/d' example.txt - удалить пустые строки из файла example.txt
sed '/ *#/d; /^$/d' example.txt - удалить пустые строки и комментарии из файла example.txt
echo 'esempio' | tr '[:lower:]' '[:upper:]' — преобразовать символы из нижнего регистра в верхний
sed -e '1d' result.txt — удалить первую строку из файла example.txt
sed -n '/string1/p' — отобразить только строки содержашие «string1»
sed -e 's/ *$//' example.txt - удалить пустые символы в в конце каждой строки
sed -e 's/string1//g' example.txt - удалить строку «string1» из текста не изменяя всего остального
sed -n '1,8p;5q' example.txt - взять из файла с первой по восьмую строки и из них вывести первые пять
sed -n '5p;5q' example.txt — вывести пятую строку
sed -e 's/0*/0/g' example.txt - заменить последовательность из любого количества нулей одним нулём
cat -n file1 — пронумеровать строки при выводе содержимого файла
cat example.txt | awk 'NR%2==1' — при выводе содержимого файла, не выводить чётные строки файла
echo a b c | awk '{print $1}' - вывести первую колонку. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляции
echo a b c | awk '{print $1,$3}' - вывести первую и треью колонки. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляции
paste file1 file2 - объединить содержимое file1 и file2 в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-m
paste -d '+' file1 file2 - объединить содержимое file1 и file2 в виде таблицы с разделителем «+»
sort file1 file2 — отсортировать содержимое двух файлов
sort file1 file2 | uniq - отсортировать содержимое двух файлов, не отображая повторов
sort file1 file2 | uniq -u — отсортировать содержимое двух файлов, отображая только уникальные строки (строки, встречающиеся в обоих файлах, не выводятся на стандартное устройство вывода)
sort file1 file2 | uniq -d - отсортировать содержимое двух файлов, отображая только повторяющиеся строки
comm -1 file1 file2 — сравнить содержимое двух файлов, не отображая строки принадлежащие файлу 'file1'
comm -2 file1 file2 — сравнить содержимое двух файлов, не отображая строки принадлежащие файлу 'file2'
comm -3 file1 file2 - сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах

Преобразование наборов символов и файловых форматов

dos2unix filedos.txt fileunix.txt — конвертировать файл текстового формата из MSDOS в UNIX (разница в символах возврата коретки)
unix2dos fileunix.txt filedos.txt — конвертировать файл текстового формата из UNIX в MSDOS (разница в символах возврата коретки)
recode ..HTML < page.txt > page.html — конвертировать содержимое тестового файла page.txt в html-файл page.html
recode -l | more — вывести список доступных форматов

Анализ файловых систем

badblocks -v /dev/hda1 — проверить раздел hda1 на наличие bad-блоков
fsck /dev/hda1 — проверить/восстановить целостность linux-файловой системы раздела hda1
fsck.ext2 /dev/hda1 или e2fsck /dev/hda1 — проверить/восстановить целостность файловой системы ext2 раздела hda1
e2fsck -j /dev/hda1 — проверить/восстановить целостность файловой системы ext3 раздела hda1 с указанием, что журнал расположен там же
fsck.ext3 /dev/hda1 — проверить/восстановить целостность файловой системы ext3 раздела hda1
fsck.vfat /dev/hda1 или fsck.msdos /dev/hda1 или dosfsck /dev/hda1 — проверить/восстановить целостность файловой системы fat раздела hda11

Форматирование файловых систем

mkfs /dev/hda1 — создать linux-файловую систему на разделе hda1
mke2fs /dev/hda1 — создать файловую систему ext2 на разделе hda1
mke2fs -j /dev/hda1 — создать журналирующую файловую систему ext3 на разделе hda1
mkfs -t vfat 32 -F /dev/hda1 — создать файловую систему FAT32 на разделе hda1
fdformat -n /dev/fd0 - форматирование флоппи-диска без проверки
mkswap /dev/hda3 — создание swap-пространства на разделе hda3
swap-пространство
mkswap /dev/hda3 - создание swap-пространства на разделе hda3
swapon /dev/hda3 — активировать swap-пространство, расположенное на разделе hda3
swapon /dev/hda2 /dev/hdb3 — активировать swap-пространства, расположенные на разделах hda2 и hdb3

Создание резервных копий (backup)

( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' — копирование содержимого /tmp/local на удалённый компьютер через ssh-туннель в /home/share/


 
Сеть


ifconfig eth0 promisc — перевести интерфейс eth0 в promiscuous-режим для «отлова» пакетов (sniffing)
ifconfig eth0 -promisc — отключить promiscuous-режим на интерфейсе eth0
dhclient eth0 — активировать интерфейс eth0 в dhcp-режиме.
route -n
netstat -rn — вывести локальную таблицу маршрутизации
route add -net 0/0 gw IP_Gateway — задать ip-адрес шлюза по умолчанию (default gateway)
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 — добавить статический маршрут в сеть 192.168.0.0/16 через шлюз с ip-адресом 192.168.1.1
route del 0/0 gw IP_gateway — удалить ip-адрес шлюза по умолчанию (default gateway)
echo "1" > /proc/sys/net/ipv4/ip_forward — разрешить пересылку пакетов (forwarding)
hostname — отобразить имя компьютера
host http://www.linuxguide.it или host 62.149.140.85 — разрешить имя http://www.linuxguide.it хоста в ip-адрес и наоборот
ip link show - отобразить состояние всех интерфейсов
mii-tool eth0 - отобразить статус и тип соединения для интерфейса eth0
ethtool eth0 - отображает статистику интерфеса eth0 с выводом такой информации, как поддерживаемые и текущие режимы соединения
netstat -tupn - отображает все установленные сетевые соединения по протоколам TCP и UDP без разрешения имён в ip-адреса и PID'ы и имена процессов, обеспечивающих эти соединения
netstat -tupln — отображает все сетевые соединения по протоколам TCP и UDP без разрешения имён в ip-адреса и PID'ы и имена процессов, слушающих порты
tcpdump tcp port 80 — отобразить весь трафик на TCP-порт 80 (обычно — HTTP)
iwlist scan — просканировать эфир на предмет, доступности беспроводных точек доступа
iwconfig eth1 — показать конфигурацию беспроводного сетевого интерфейса eth1

Microsoft Windows networks(SAMBA)

nbtscan ip_addr
nmblookup -A ip_addr - разрешить netbios-имя nbtscan не во всех системах ставится по-умолчанию, возможно, придётся доустанавливать вручную. nmblookup включен в пакет samba.
smbclient -L ip_addr/hostname — отобразить ресурсы, предоставленные в общий доступ на windows-машине
smbget -Rr smb://ip_addr/share — подобно wget может получить файлы с windows-машин через smb-протокол
mount -t smbfs -o username=user,password=pass //winclient/share /mnt/share — смонтировать smb-ресурс, предоставленный на windows-машине, в локальную файловую систему

IPTABLES (firewall)

iptables -t filter -nL
iptables -nL — отобразить все цепочки правил
iptables -t nat -L — отобразить все цепочки правил в NAT-таблице
iptables -t filter -F или iptables -F — очистить все цепочки правил в filter-таблице
iptables -t nat -F — очистить все цепочки правил в NAT-таблице
iptables -t filter -X — удалить все пользовательские цепочки правил в filter-таблице
iptables -t filter -A INPUT -p tcp --dport telnet -j ACCEPT — позволить входящее подключение telnet'ом
iptables -t filter -A OUTPUT -p tcp --dport http -j DROP — блокировать исходящие HTTP-соединения
iptables -t filter -A FORWARD -p tcp --dport pop3 -j ACCEPT — позволить «прокидывать» (forward) POP3-соединения
iptables -t filter -A INPUT -j LOG --log-prefix "DROP INPUT" — включить журналирование ядром пакетов, проходящих через цепочку INPUT, и добавлением к сообщению префикса «DROP INPUT»
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE — включить NAT (Network Address Translate) исходящих пакетов на интерфейс eth0. Допустимо при использовании с динамически выделяемыми ip-адресами.
iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp --dport 22 -j DNAT --to-destination 10.0.0.2:22 — перенаправление пакетов, адресованных одному хосту, на другой хост

Мониторинг и отладка


ps -eafw — отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (единожды)
ps -e -o pid,args --forest — вывести PID'ы и процессы в виде дерева
pstree — отобразить дерево процессов
kill -9 98989 или kill -KILL 98989 — «убить» процесс с PID 98989 «на смерть» (без соблюдения целостности данных)
kill -TERM 98989 — корректно завершить процесс с PID 98989
kill -1 98989 или kill -HUP 98989 - заставить процесс с PID 98989 перепрочитать файл конфигурации
lsof -p 98989 - отобразить список файлов, открытых процессом с PID 98989
lsof /home/user1 — отобразить список открытых файлов из директории /home/user1
strace -c ls >/dev/null - вывести список системных вызовов, созданных и полученных процессом ls
strace -f -e open ls >/dev/null — вывести вызовы бибилотек
watch -n1 'cat /proc/interrupts' - отображать прерывания в режиме реального времени
last reboot — отобразить историю перезагрузок системы
last user1 — отобразить историю регистрации пользователя user1 в системе и время его нахождения в ней
lsmod — вывести загруженные модули ядра
free -m - показать состояние оперативной памяти в мегабайтах
smartctl -A /dev/hda - контроль состояния жёсткого диска /dev/hda через SMART
smartctl -i /dev/hda — проверить доступность SMART на жёстком диске /dev/hda
tail /var/log/dmesg - вывести десять последних записей из журнала загрузки ядра
tail /var/log/messages - вывести десять последних записей из системного журнала

Другие полезные команды

apropos …keyword — выводит список комманд, которые так или иначе относятся к ключевым словам. Полезно, когда вы знаете что делает программа, но не помните команду
man ping — вызов руководства по работе с программой, в данном случае, — ping
whatis …keyword — отображает описание действий указанной программы
mkbootdisk --device /dev/fd0 `uname -r` — создаёт загрузочный флоппи-диск
gpg -c file1 — шифрует файл file1 с помощью GNU Privacy Guard
gpg file1.gpg — дешифрует файл file1 с помощью GNU Privacy Guard
wget -r http://www.example.com — загружает рекурсивно содержимое сайта http://www.example.com
wget -c http://www.example.com/file.iso — загрузить файл http://www.example.com/file.iso с возможностью останова и продолжения в последствии
echo 'wget -c http://www.example.com/files.iso' | at 09:00 — начать закачку в указанное время
ldd /usr/bin/ssh — вывести список библиотек, необходимых для работы ssh
alias hh='history' — назначить алиас hh команде history
whereis ping — вывести полный путь к исполняемому файлу программы и справки к ней.

Заметки Linux

На инсталляцию


 

 

firebierd

qmmp

gwenview

qstardict

 

 

/proc

Meminfo … смотреть хар-ки компа

 

 

 

 

Программирование

Geany

В новый школьный комплект входит среда разработки Geany, которая позволяет обучать программированию на языках С/С++, Python

 

питон среда разработки

Wing IDE http://freshmeat.net/projects/wingide

Пакеты wxpython для граф. Среды в синаптике

xrced редактор

Boa Constructor как делпхи http://boa-constructor.sourceforge.net/Download.html

flamerobin

 

lazarus

 

cherokee

веб-сервер

MINIOS

Метка загрузочного диска на мадриву

okteta

Двоичный редактор

 

http://rus-linux.net/MyLDP/BOOKS/ProgrX/xwin-contents.shtml

Kylix + delphi

http://kylixlibs.sourceforge.net/down.html это дополнительные библиотеки.

IBAdmin for Linux

Поодобие Ибэксперта под фереберд http://www.sqlly.com/

Интернет

qutIM

— аська

http://www.nixp.ru/soft/

Софтина

Украшательства

 

avant — window — navigator

wally

Смена фона рабочего стола в ubuntu

screenlets_0.1.2-7ubuntu2_all

Темы для стола, папки и часы…

Мультимедиа (аудио и видео)

QSynth

http://qsynth.sourceforge.net/ Аудио редактор

 

 

Графика

Albatross 3D

Беспл. 3D редактор http://www.ppmodeler.com/

K-3D

http://www.k-3d.org/wiki/Main_Page 3d редактор

 

 

Офис

распознавание текста

http://www.cuneiform.ru/downloads/index.html

muCommander

http://www.mucommander.com/

Игры

netPanzer

http://www.netpanzer.org/

Trepidation

http://www.planettrepidation.com/

Urban Terror

http://www.urbanterror.info/news/home/

AssaultCube(ActionCube)

 

Tremulous

http://tremulous.net/ +++

Sauerbraten или Cube 2

http://www.sauerbraten.org/ +++

War§ow (WarSow)

http://www.warsow.net/ http://www.warsow.net/wiki/index.php?title=Main_Page/ru

Mania Drive

http://maniadrive.raydium.org/

OpenArena 0.7.6

 

 

 

 

Download from the official site

http://download.tuxfamily.org/openarena/rel/076/oa076LinuxMacWin.zip

DepositFiles

http://depositfiles.com/files/5282164

PlayOnLinux

 

Установка PlayOnLinux

 

Добавим новый репозитарий, его ключ и обновим список пакетов:

 

sudo wget http://deb.mulx.net/playonlinux_hardy.list -O /etc/apt/sources.list.d/playonlinux.list

 

wget -q http://deb.mulx.net/pol.gpg -O- | sudo apt-key add -

 

sudo apt-get update

 

Установим программу командой:

 

 

 

sudo apt-get install playonlinux

 

 

 

 

 

 

Система

Simple Backup

Резервирование в ubuntu гном..

kdiskfree

 

areca

http://www.areca-backup.org/ Резервирование

DarGUI

http://dargui.sourceforge.net/ Резервирование

 

 

ksysguard

 

Ailurus 10.10.5

http://tdt.sjtu.edu.cn/ailurus/?page_id=3 Тонкая настройка Убунту

acetoneiso

Монтирование образов и делает их из папок

Remmina

Удаленный доступ .

Полезные комманды, заметки

 

чистка ненужных пакетов

apt-get clean

 

kcmshell4 system-config-printer-kde

cups

http://localhost:631/

 

useradd: useradd -m -u 65535 noone — создание с uid нужным 65535(нкито)

gksudo

Запуск с суперправами (root)

 

 

Остальное на установку

Chome, Opera, krusader,wine, kvpnc, ktorent, pidjin,qmmp, marble — глобус, truecrypt, virtualbox

 

 

Консольные команды

 

 

 

chmod

Изменение прав на файл.

 

 

ls

Ls -l — выводим список файлов с правами доступа

ls -l > ls-l.txt

c выводом в файл.

lshw

Под рут полный перечень оборудования в системе

(сведения о системе).

kill

Kill -term 13332

killall

Killall -HUP httpd завершает все под именем…

killall название приложения

nmap -sP 10.28.12.0/24

Зондирование(пинги) сети. По последнему…

mkdir,

Создать директорию

mount

mount -t smbfs -o username=krayniy,password=****,uid=500,ip=10.28.1.203 //10.28.1.203/Consultant /media/cons

mv

Перемещение каталога

rmdir

Удаление каталога, все файлы и директории внутри него, запустив для этого команду rm -r

netcat -v -w 4 -z 10.28.12.96 1-100

Отличный сканер портов — v отчет, -w 4 иетервал ожидания 4 сек, z — не отправлять данные на порт

showkey -s

Логирование клавиатуры

netstat -an -pt

Выводит открытые порты на компе

nmap -v -A 192.168.0.1

Подробное сканирование портов с инфой о них

rm

Rm — f 12.txt удалить файл

rm /etc/x11/xorg.conf удалить если глюканет X-сервер

mount

mount -t iso9660 -o loop /mnt/sda2/public_copy/72_delp_lin/Borland_Kylix_3_Enterprise_Linux.iso /media/iso_linux

rpm -q make

Версия проги, установлен

Pwd

Текущий каталог

ps -x|grep virtualbox

Id процесса по имени

sudo /etc/init.d/gdm restart

Перезагрузка в Гном графич. среды

Открываем терминал (для тех, кто ещё открывает его из главной панели, напомню, что эту операцию можно заменить одновременным нажатием кнопок Ctrl+Alt+T)

 

 

 

2) И пишем такую команду: sudo /etc/init.d/gdm restart

trafshow

Отображение трафика в реальном времени

 

 

 

 

 

 

 

 

Конвертация из utf8

 

 

mysqldump -u root -p --default-character-set=latin1 --skip-set-charset zavoev > /home/zavoev2.sql

Имеется samba шара(общая), которую я хочу примонтировать к папке.

Добавил следующую строку в /etc/fstab

//192.168.0.2/marikk /home/marikk/back cifs username=user,password=pass,_netdev,rw 0 0

Теперь подключаем принтер к компьютеру. Если принтер зашумел и начал моргать индикаторами на своей панели (зеленый и оранжевый), значит все было сделано правильно, система опознала устройство как принтер и foo2zjs отдал ему «прошивку». Если этого не произошло, можно попробовать самостоятельно «прошить» принтер. В терминале выполняем команду

cat /var/lib/foo2zjs/firmware/sihp1018.dl > /dev/usb/lp0

Lazarus с фото

http://habrahabr.ru/post/151008/

 

Утверждение: Размер исполняемых файлов оставляет желать лучшего. Виноват компилятор, компоновщик и др.

Некоторую информацию по данной теме можно получить на wiki-странице.

 

Итак, основная составляющая размера исполняемого файла — отладочная информация. Отладочную информацию добавляет компилятор FPC когда ему передан ключ "-g". FPC может генерировать 2 вида отладочной информации: устаревший stabs и современный dwarf (версии 2 или 3), что также определяется переданными компилятору ключами. Оба вида отладочной информации понимаются отладчиком gdb. В Lazarus включить/выключить отладочную информацию, а также определить ее вид можно на закладке «Компоновка» в параметрах проекта:

 

сли вы собираете проект под Windows или Linux, можно сформировать внешний файл отладочных символов. В этом случае в исполняемый файл отладочная информация добавляться не будет, а вместо нее будет помещена ссылка на внешний отладочный файл.

 

Исключение отладочной информации уменьшает размер пустого проекта с формой с 20Мб до 1,6Мб на Windows. Но, 1,6Мб тоже больше чем 300Кб, который выдавал Delphi 7 (Delphi XE, к примеру, уже выдает значительно больше из-за распухания RTTI). Дело тут не в компиляторе и не в компоновщике, которые делают свою работу верно, а все дело в LCL.

 

LCL — Lazarus Component Library архитектурно состоит их двух частей: фронтэнда — платформонезависимой библиотеки классов для разработчиков приложений (TForm, TButton, TLabel, …) и бэкэнда — части отвечающей за реализацию этих компонент под конкретную платформу (win32, qt, gtk2, …). При начальной реализации бэкэндов никто особо не задумывался о размере исполняемых файлов и писал общие методы, в которых обращался ко всем классам фронтэнда.

 

Например, следующий код из модуля lcl\interfaces\win32\win32proc.pp тянет в исполняемый файл классы TCustomGroupBox, TCustomTabControl, даже если вы их нигде не используете:

if (TheWinControl is TCustomGroupBox) then begin … end else if TheWinControl is TCustomTabControl then begin … end;

 

Решить эту проблему может рефакторинг, но он требует значительных усилий и времени, которые в условиях нехватки рук возможно лучше потратить на решение других проблем. Надо сказать, что определенные усилия в этом направлении были приложены 2 или 3 года назад, что позволило сократить размер пустого проекта с формой на 300Кб.

 

Утверждение: Lazarus ставил однажды в Windows, и запомнилось, что даже простейшая программа с окном и кнопкой компилируется ооочень долго.

 

Проблема была, когда FPC использовал GNU компоновщик для Windows. Но, в FPC 2.2 (а сейчас Lazarus использует FPC 2.6) проблема была устранена разработкой встроенного компоновщика для Windows. Кроме того, на тот момент компоновщик GNU не умел собирать под платформу Win64, что тоже послужило толчком к разработке собственного встроенного компоновщика. Надо заметить, что под Linux и Darwin таких проблем со скоростью сборки не было и нет (и как следствие до сих пор нет и собственного компоновщика под эти платформы).

 

Сейчас сборка и запуск пустого проекта с формой на моей машине занимает не более 2х секунд.

 

Вопрос: Здорово, если в Lazarus появится нормальный докинг, как в Delphi 2006, к примеру. Сильно повысит удобство интерфейса. Хотя, может быть, он там уже есть?

 

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

 

Утверждение: «Mac OS X: 10.4, LCL только 32bit, не-LCL могут быть 64bit». Да уж, впечатляет.

 

Во-первых, имеется в виду, что Lazarus собирает проекты под Mac OS X не ниже версии 10.4. То есть поддерживаются и 10.5 и 10.6 и 10.7 и 10.8 (на которой у меня сейчас запущен Lazarus). LCL проекты могут быть только 32бит.

 

Это связано с тем, что на Max OS X существуют 2 основные системные библиотеки: carbon и cocoa. Carbon появилась первой и представляла собой библиотеку функций. Не было никаких проблем начать строить на ее основе LCL бэкэнд, что и было сделано. После Apple представил еще одну библиотеку cocoa, которая вместо функций содержит классы Objective-C. Позже Apple объявил, что не будет делать библиотеку carbon 64 разрядной, и вообще новые приложения надо разрабатывать только под cocoa.

 

Для взаимодействия с Objective-C классами в FPC был добавлен диалект, получивший название Objective-Pascal. В Lazarus был также добавлен бэкэнд для cocoa, но он в настоящее время находится в стадии ранней разработки. Возможно (я приложу к этому усилия), к версии 1.2 он будет на уровне бэкэнда под gtk2 и qt.

виртуализировать "физический" сервер

acronis

1. Сняли образ сервака Акронисом

2. Средствами того же акрониса конвертнули образ в формат vmware

3. В вмваре запустили его, настроили сетку и погнали :15:

 

 

у цытрикса есть p2v — конвертер "физического сервака" в виртуальную машину.

 

disk2vhd для майкрософтовской виртуалки.

 

http://www.vmware.com/products/converter/

 

 

Veeam ONE для VMware и Hyper-V

Мощность, простота и доступность мониторинга и отчетности

 

http://www.veeam.com/ru/vmware-esx-management-one-solution.html

http://habrahabr.ru/company/depocomputers/blog/150350/

 

*****

 

vGate R2 — сертифицированное средство защиты информации от несанкционированного доступа и контроля выполнения ИБ-политик для виртуальной инфраструктуры на базе систем VMware vSphere 4 и VMware vSphere 5.

 

****

 

http://www.msadmin.ru/index.php?option=com_content&view=article&id=43:p2v&catid=1:servers-&Itemid=2

 

Перевод физических серверов в виртуальную среду (P2V)

Не помню зачем

Еще одной приятной возможностью утилиты sudo является создание алиасов, так в нашем случае добавим в /etc/sudoers следующие строки:

 

User_Alias USERGROUP1 = petrov, sidorov

Cmnd_Alias CMDGROUP1 = /bin/kill, /sbin/reboot, /sbin/shutdown

 

Этим мы создали два алиаса USERGROUP1, куда включили необходимых нам пользователей и CMDGROUP1 с набором нужных команд, в последствии мы можем править только алиасы, не затрагивая все правила, где они могут использоваться. Затем добавим правило:

 

USERGROUP1 ALL = (ALL) NOPASSWD:СMDGROUP1

которое позволит пользователям перечисленным в указанном алиасе выполнять на любом хосте от имени любого пользователя команды из приведенного алиаса без ввода пароля.

 

Кроме указанных двух, доступны алиасы и для имени хоста и пользователей от имени которых разрешено выполнять команды, например:

 

Host_Alias WWW = webserver1, webserver2

Runas_Alias WWW = www-data, www-developer

 

USERGROUP1 WWW = (WWW) ALL

Приведенный набор записей позволит пользователям входящим в USERGROUP1 выполнять любые команды от имени пользователей www-data и www-developer на веб-серверах компании.

“Хозяйке на заметку” — Работаем вдвоем на одной консоли (шелл).

Подводные камни при работе с ssh

Иногда в практике админа возникает необходимость проконтролировать, а что и как, собственно, делает пользователь и/или младший админ на консоли. Например, в процессе показа и обучения пользования ОС или какими-то ее особенностями. В частности, не так давно мне нужно было обучить junior админа некоторым небольшим фокусам в linux. Ну хорошо, если они (админ и обучаемый) сидят в одной комнате или хотя бы живут в одном городе. А если на разных континентах?

Очень удобно в таких случаях работать одновременно на одной консоли. Казалось бы — достаточно расшарить экран хотя бы по тому же скайпу. Но как быть, если учителю нужно набрать пару команд и показать результат и действия? Пользоваться платными сервисами для создания вебконференций? "Шурик, это же не наш метод!" (с) :) Все гораздо проще.

Есть великолепная программка screen. Одной из ее возможностей и есть то, что нам нужно.

Сначала ученик создает сессию screen:

$ screen -S mysession

Полезный ключик -S позволяет именовать сессию, чтобы потом судорожно не вычислять, а с какой сессией screen из десятка запущенных на сервере нам нужно работать

Далее учитель подключается к сессии:

$ screen -x mysession

Все, имеем готовую "консоль на двоих". Оба оператора консоли могут видеть содержимое и работать с консолью.

Но не все так безоблачно. Ведь не может же ОС допустить, чтобы кто ни попадя мог так просто вломиться в чужую консоль. Поэтому важным условием должно быть — запуск screen от имени одного пользователя: как учеником так и учителем!

Казалось бы — в чем проблема? Учитель, используя команду sudo, переключается на нужного пользователя и подключается к нужной сессии. А проблема в ssh, который в 99% случаев будет использован (как правило, "коллективные сеансы" screen проводятся на некоем третьем компьютере, удаленном сервере). Владелец псевдотерминала, созданного ssh, при sudo не меняется (что, разумеется, абсолютно правильно и логично) и screen не может к нему приаттачиться!, выдавая сообщение вида:

$ screen -x testsession

Cannot open your terminal '/dev/pts/14' — please check.

Менять права по умолчанию для псевдотерминала? Это все равно, что отдать "ключи от квартиры, где деньги лежат" (с) — т.е. добровольно снизить безопасность системы до неприемлемого уровня.

Но есть некий обход, "dirtyhack". Нужно воспользоваться командой script, которая предназначена, вообще-то несколько для других целей, но нам сгодится :)

$ script /dev/null

$ screen -x mysession

Вот теперь подключение проходит "на ура"!

PS. Не забываем, что script прекращает работу по Ctrl-D ;)

Для того чтобы дебиан видил остальные сети задайте на нём такие маршруты -

route add -net 10.128.149.0 netmask 255.255.255.0 dev eth0

route add -net 10.128.42.0 netmask 255.255.255.0 dev eth0

 

острожно надо тестировать, может нарушить сеть

 

http://habrahabr.ru/post/151661/ Проброс видеокарты в гостевую ОС из гипервизора Xen

Рынок хостинга понемногу перешел от аренды виртуальных площадок до вполне вменяемых виртуальных серверов, когда есть

Провайдер / тариф CPU (MHz) Память (Мб) Диск (Гб) Цена, руб/ месяц Bitrix

Agava Optimal Bitrix 1000 512 12 1249 73,05

Rusonyx VPS Plus 2012 2000 1024 10 499 66,13

Reg.Ru VPS-3 2000 1024 15 595 64,56

Selectel Bitrix-M 1024 1024 50 750 58,82

HC ProVPS-3 2000 1024 10 1400 58,37

Мастерхост «Практичный: 1С-Битрикс» 800 1024 10 1700 55,69

FirstVDS VDS-Разгон 600 768 16 249 38,05

FastVPS OVZ-5 2400 2000 14 671 29,01

TimeWeb VPS-Ультра 1500 1024 15 2500 14,63

Infobox VPS-1024 Linux 1000 1024 60 1100 11,48

IHC Земля 2000 1024 50 850 5,55

Как прописать статические маршруты (routes)?

Для Windows XP/2000/2003

Вариант 1

 

Рассмотрим, например, домашнюю сеть со следующими данными:

- внутренний ip-адрес модема (default gateway) — 192.168.1.1;

- маска подсети (subnet mask) стандартная — 255.255.255.0;

- адрес VPN- сервера для примера — 10.1.1.1,

тогда для прописания статического маршрута в командной строке (Пуск –> Выполнить, или Ctrl+R) набираем команду

route ADD -p 10.1.1.1 MASK 255.255.255.255 192.168.1.1 METRIC 1

и нажимаем "Ввод".

Готово!

Вариант 2

 

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

 

Нам понадобится текстовый документ (.txt). Для этого, например, жмем правой клавишей мыши по Рабочему столу –> Создать –> Текстовый документ.

В открывшемся документе пишем команду:

route.exe ADD –p 10.1.1.1 MASK 255.255.255.255 192.168.1.1 METRIC 1

и сохраняем документ: Файл –> Сохранить как:

Тип файла: Все файлы

Имя: atlant.bat

нажимаем кнопку "Сохранить".

 

Осталось только запустить файл atlant.bat. Готово!

 

Пояснения:

 

route.exe подпрограмма работы с маршрутами;

ADD — команда для добавления маршрута на указанный адрес. У нас на 10.1.1.1;

-p — этот ключ нужен, что бы сохранить маршрут. Если его не прописать, то после перезагрузки таблица маршрутов обнулится;

10.1.1.1 — адрес назначения;

MASK — ставим этот параметр перед прописанием значения маски подсети;

192.168.1.1 — адрес основного шлюза. Чаще всего это ip-адрес модема;.

METRIC 1 — параметр, определяющий приоритет указанного выше шлюза. 1- наивысший приоритет (цена). Т.е. если бы в Вашей сети было несколько модемов, то нужно было бы каждому из них задать приоритет — на какой из модемов пакеты, не принадлежащие IP-диапазону Вашей сети, будут адресоваться в первую, вторую очередь и т.д.

 

Проверить прописанные маршруты можно командой route print. Для этого заходим в командную строку (Пуск –> Выполнить –> cmd –> Ok). В открывшемся окне набираем команду route print и нажимаем "Ввод".

Внимание! Постоянные маршруты не следует путать с активными маршрутами (см. рис.)

 

 

 

Для удаления всех существующих постоянных маршрутов служит команда route -f.

Для удаления какого-то конкретного постоянного маршрута служит команда route delete 10.1.1.1 (10.1.1.1 — указан в качестве примера).

 

Список команд:

 

route -f

 

route add -p 172.16.2.0 mask 255.255.255.0 шлюз

 

route add -p 172.16.5.0 mask 255.255.255.0 шлюз

 

route add -p 10.0.0.0 mask 255.0.0.0 шлюз

 

Для того, чтобы удостовериться в правильности выполненной настройки подключитесь к Интернету и в командной строке, выполните команду tracert reg.mannet.lan. При этом, первым узлом в списке должен быть ваш локальный шлюз с характерным адресом 10.х.х.х.

Внимание!

 

Если Вы ошибетесь с командами, то работа Интернет и локальной сети может быть нарушена. В таком случае введите команду сброса маршрутов route -f и перезагрузите компьютер.

top

потребл. ресурсы с паузой

 

top -b -n1

 

Во-первых мы будем использовать 'top', чтобы найти Id процесса(PID) java приложения. Это весьма просто:

top -n1 | grep -m1 java

 

я нашел perl скрипт, чтобы удалить лишние символы и наконец-то извлечь PID.

top -n1 | grep -m1 java | perl -pe 's/\e\[?.*?[\@-~] ?//g' | cut -f1 -d' '

 

ss

Общая информация о соединениях:

# ss -s

 

Информация об ожидающих соединений сокетах:

# ss -l

 

Информация об ожидающих соединений сокетах, а также именах процессов, их использующих:

# ss -lp

 

Информация обо всех задействованных TCP сокетах:

# ss -at

 

Информация обо всех задействованных UDP сокетах:

# ss -au

 

Информация обо всех установленных SMTP-соединениях:

# ss -o state established '( dport = :smtp or sport = :smtp )'

 

Информация обо всех установленных HTTP-соединениях:

# ss -o state established '( dport = :http or sport = :http )'

 

Локальные процессы, подключённые к X-серверу:

# ss -x src /tmp/.X11-unix/*

 

TCP-сокеты, находящиеся в состоянии FIN-WAIT-1 для соединений из подсети 202.54.1./24:

# ss -o state fin-wait-1 '( sport = :http or sport = :https )' dst 202.54.1/24

 

Топ-10 почтовых служб выглядит так:

 

1. Яндекс.Почта — 117 тыс. доменов

2. Spaceweb — 102 тыс. доменов

3. GMail — 101 тыс. доменов

4. Timeweb — 85 тыс. доменов

5. RuCenter — 76 тыс. доменов

6. Masterhost — 51 тыс. доменов

7. 1Gb — 43 тыс. доменов

8. Хостинг-Центр — 42 тыс. доменов

9. Infobox — 42 тыс. доменов

10. Majordomo — 38 тыс. доменов

 

mysql -u root -p test < baza.sql

mysql -u root -p

create database test;

drop database wwwsiluetsru;

 

Из PHP эту строку можно запустить так:

exec('mysql -u root -p my_database < my_sql.sql');

 

show databases

 

DROP TABLE IF EXISTS fights;

CREATE TABLE `fights` (

`name` text NOT NULL,

`namevs` text NOT NULL,

`all` text NOT NULL,

`id` int(20) NOT NULL auto_increment,

`travm` smallint(6) NOT NULL default '0',

`oruj` smallint(6) NOT NULL default '0',

`type` varchar(10) NOT NULL default 'notf',

`turn` text NOT NULL,

`ltime` int(11) NOT NULL default '0',

`timeout` int(11) NOT NULL default '0',

`stones` int(2) NOT NULL default '0',

UNIQUE KEY `id_2` (`id`),

KEY `id` (`id`),

KEY `id_3` (`id`)

) ENGINE=MyISAM /*!40101 DEFAULT CHARSET=cp1251 */;

 

 

 

CREATE TABLE test_innodb (

id int(11) NOT NULL auto_increment,

PRIMARY KEY (id) -- основной ключ

) TYPE=InnoDB;

 

TABLE IF NOT EXISTS `pma_history` (

`id` bigint(20) unsigned NOT NULL auto_increment,

`username` varchar(64) NOT NULL default '',

`db` varchar(64) NOT NULL default '',

`table` varchar(64) NOT NULL default '',

`timevalue` timestamp NOT NULL,

`sqlquery` text NOT NULL,

PRIMARY KEY (`id`),

KEY `username`

(`username`,`db`,`table`,`timevalue`)

)

ENGINE=MyISAM COMMENT='SQL history for phpMyAdmin'

DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

 

`comment` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL default '',

 

`test` VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,

 

item_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,

 

CREATE DATABASE `zavoev` CHARACTER SET utf8 COLLATE utf8_general_ci

 

 

mysql> use zavoev;

 

CREATE TABLE IF NOT EXISTS `city`(

ID INT (11) UNSIGNED NOT NULL AUTO_INCREMENT,

X varchar(64) NOT NULL default '',

Y varchar(64) NOT NULL default '',

IMG varchar(64) NOT NULL default '',

VID varchar(64) NOT NULL default '',

VNAME varchar(64) NOT NULL default '',

POP varchar(64) NOT NULL default '',

PID varchar(64) NOT NULL default '',

PNAME varchar(64) NOT NULL default '',

AID varchar(64) NOT NULL default '',

ANAME varchar(64) NOT NULL default '',

RACE varchar(64) NOT NULL default '',

TIMEST timestamp NOT NULL,

TUMENEW timestamp NOT NULL,

STATUS varchar(64) NOT NULL default '',

COMMENTS text NOT NULL,

STATUS2 varchar(64) NOT NULL default '',

PRIMARY KEY (`ID`), UNIQUE INDEX `uqPNAME` (`PNAME` ASC) )

ENGINE = InnoDB

COMMENT = 'База городов';

 

 

Для PPPoe на работе....

 

Автостарт

1. /etc/rc.local

sleep 20 && pppd call freedom debug nodetach

 

/etc/ppp/peers/freedom

 

 

pty "pptp 172.16.0.11 --nolaunchpppd"

name Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.

user Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.

password "EEZLVP3PxpPS"

defaultroute

replacedefaultroute

remotename PPTP

+pap

noauth

persist

maxfail 0

lcp-echo-interval 30

lcp-echo-failure 4

ipparam freedom

mtu 1300

 

 

Разрыв соединения VPN в Ubuntu

Сталкнулся с такой проблемой: если в Ubuntu настраивать vpn соединение с провайдером (есть локальная сеть + выход в интернет по vpn) через "Connection manager", то после нескольких минут работы соединение разрывается. При чем это наблюдается только когда соединение используется (идет трафик), когда простаивает — держит.

Оказалось, что Connection manager делает не правильные настройки для моего провайдера. Решилось все путем добавления соединения vpn вручную.

Создал файл freedom в каталоге /etc/ppp/peers/ (предварительно настроив доступ к нему командой

 

chmod 747 freedom

 

).

Содержимое файла:

 

pty "pptp 192.168.149.1 --nolaunchpppd"

name USERNAME

user USERNAME

password "PASS"

defaultroute

replacedefaultroute

remotename PPTP

+chap

noauth

ipparam freedom

mtu 1300

 

,где: 192.168.149.1 — адрес сервера vpn моего провайдера (замените на свой или укажите url),

USERNAME — имя пользователя vpn (Ваш логин),

PASS — Ваш пароль.

 

Убеждаемся, что в файлах /etc/ppp/options, ~/.ppprc, /etc/ppp/options.ppp0 нет

незакомментированных параметров, которыми бы система могла затереть наши настройки. Если

есть — комментируем.

 

Поднимаем тестовое соединение VPN командой

 

pppd call freedom debug nodetach

 

Если есть необходимость запускать соединение от простого пользователя, добавьте в файл /etc/sudoers строку:

 

username compname = NOPASSWD: /usr/bin/pon, /usr/bin/poff

 

Соответственно, замените username и compname на имя вашего пользователя и его машины. Он сможет

запускать и прерывать соединение командами

 

sudo pon corbina

sudo poff corbina

 

Делаем ярлык на рабочем столе с командой: sudo pon corbina

 

Все. готово, работает и соединение не рвется.

 

3. Это Доп. инфа. Должно быть и уже работает с п1 и п2.... Auotomatic reconect pptp

Не понял, зачем такие сложности со скриптами, если согласно man pppd достаточно в /etc/ppp/peers/$PEER в дополнение к имеющимся опциям указать:

Код: [Выделить]

 

# Не отключаться когда соединение закрыто, пробовать открыть его снова

persist

# При отсутствии связи всегда пытаемся подключиться

maxfail 0

# Узнаем о «самочувствии» удаленной стороны каждые 30 сек

lcp-echo-interval 30

# Если удаленная сторона не ответила 4 раза — считаем что нас отключили

lcp-echo-failure 4

 

 

 

еще хлам…

noauth

nobsdcomp

nodeflate

# восстанавливать соединение после обрыва

persist

 

/etc/init.d/darkstat stop

удалить rm /var/lib/darkstat/darkstat.db

rm /var/lib/darkstat/darkstat.log

/etc/init.d/darkstat start

 

Ntop — анализирует трафик и просматривает сетевую активность в вашей сети.

http://Ваш_IP:3000

Установка Ntop на Ubuntu

 

apt-get install ntop

ntop -i eth1 start

ntop

Вводим пароль ндля пользователя admin

http://Ваш_IP:3000

 

 

 

ircd-irc2

клиент kvirc

 

 

ssh Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.

su …zx…

/etc/init.d/darkstat stop

rm /var/lib/darkstat/darkstat.db

rm /var/lib/darkstat/darkstat.log

/etc/init.d/darkstat start

 

ssh Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.

 

Имеется две сетевых карты. Eth1- Интернет и eth0- в локалку. Локалка состоит из компов 192.168.0.100-109 .Как заблокировать на 100 процентов прохождение трафика через eth0 компы которые с IP не моей локалки. Тоесть сетевая eth0 не должна пропускать не один пакет TCP

 

 

Ну старт всегда примерно такой:

 

iptables -P INPUT DROP

iptables -P OUTPUT DROP

iptables -P FORWARD DROP

 

iptables -A INPUT -m state --state INVALID -j DROP

iptables -A FORWARD -m state --state INVALID -j DROP

iptables -A INPUT -m conntrack --ctstate INVALID -j DROP

iptables -A FORWARD -m conntrack --ctstate INVALID -j DROP

 

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

 

№14: tcpdump — детальный анализ сетевого трафика

 

Команда tcpdump — простая команда, выдающая дамп сетевого трафика. Однако, вам нужно хорошо понимать протоколы TCP/IP для того, чтобы использовать это средство. Например, для того, чтобы показать информацию о трафике DNS, введите следующее:

 

# tcpdump -i eth1 'udp port 53'

 

Для того, чтобы показать все IPv4 HTTP пакеты, идущие на порт и с порта 80, т.е. выдать только те пакеты, которые содержат данные, и, например, не учитывать пакеты SYN и FIN и пакеты ACK-only, введите следующее:

 

# tcpdump 'tcp port 80 and (((ip[2:2] — ((ip[0]&0xf)<<2)) — ((tcp[12]&0xf0)>>2)) != 0)'

 

Для того, чтобы показать все сессии FTP для адреса 202.54.1.5, введите следующее:

 

# tcpdump -i eth1 'dst 202.54.1.5 and (port 21 or 20'

 

Для того, чтобы показать все сессии HTTP для адреса 192.168.1.5, введите следующее:

 

# tcpdump -ni eth0 'dst 192.168.1.5 and tcp and port http'

 

Введите следующую команду и используйте для просмотра подробностей программу анализа wireshark:

 

# tcpdump -n -i eth1 -s 0 -w output.txt src or dst port 80

 

Например,

 

iptables -F # Очищаем все цепочки таблицы filter

# Ко всем пакетам, которые относятся к уже установленным соединениям, применяем терминальное действие ACCEPT — пропустить

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

iptables -P INPUT DROP # В качестве действия по умолчанию устанавливаем DROP — блокирование пакета

iptables -P OUTPUT ACCEPT # Разрешаем все исходящие пакеты

 

Теперь цепочка INPUT таблицы filter содержит единственное правило, которое пропускает все пакеты, относящиеся к уже установленным соединениям. Ко всем остальным входящим пакетам будет применено действие по умолчанию — DROP. Цепочка же OUTPUT вообще не содержит правил, поэтому ко всем исходящим пакетам будет применяться действие по умолчанию ACCEPT. Таким образом хост, настроенный согласно этому примеру и подключенный к Интернету, будет недоступен извне (все попытки установить соединение снаружи блокируются), однако с самого хоста доступ к Интернету будет свободный (исходящие пакеты разрешены, а ответы на них уже относятся к установленным соединениям).

 

********** второй вариант

 

-P INPUT DROP

-P OUTPUT DROP

-P FORWARD DROP

 

#Это чтоб открыть интернет…

-A INPUT -s 85.172.17.18 -i eth1 -j ACCEPT

-A OUTPUT -s 85.172.17.18 -i eth1 -j ACCEPT

 

#Это чтоб окрыть до сервера SSH

A INPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT

A OUTPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT

 

один из запретов

iptables -N our_subnet # Создаем специальную цепочку для проверки пакетов из нашей подсети

iptables -A our_subnet -s 10.134.0.67 -j RETURN # Запрещенный хост — выходим

iptables -A INPUT -s 10.134.0.64/26 -j our_subnet

 

Например, предположим, что нам нужно обеспечить доступ к определенным портам нашего сервера для всех хостов из подсети 10.134.0.64/26, кроме 10.134.0.67 и 10.134.0.100.

 

iptables -F # Очищаем все цепочки таблицы filter

iptables -N our_subnet # Создаем специальную цепочку для проверки пакетов из нашей подсети

iptables -A our_subnet -s 10.134.0.67 -j RETURN # Запрещенный хост — выходим

iptables -A our_subnet -s 10.134.0.100 -j RETURN # Запрещенный хост — выходим

# Всем остальным разрешаем доступ к нужным портам

iptables -A our_subnet -p tcp -m multiport --dports 22,53,8080,139,445 -j ACCEPT

iptables -A our_subnet -p udp -m multiport --dports 53,123,137,138 -j ACCEPT

iptables -A our_subnet -p icmp --icmp-type 8 -j ACCEPT

# Разрешаем пакеты по уже установленным соединениям

iptables -A INPUT -m conntrack --cstate ESTABLISHED,RELATED -j ACCEPT

# Все пакеты из нашей подсети отправляем на проверку

iptables -A INPUT -s 10.134.0.64/26 -j our_subnet

iptables -P INPUT DROP # Что не разрешено — то запрещено

iptables -P OUTPUT ACCEPT # На выход — можно все

 

Борьба с DDOS средствами iptables

Posted on 27.11.2011 by admin

 

iptables -I INPUT -p tcp —dport 80 -m state —state NEW -m recent —set

iptables -I INPUT -p tcp —dport 80 -m state —state NEW -m recent —update —seconds 1 —hitcount 100 -j SET —add-set black_list_by_conn src,src

 

ipset -N black_list_conn iptree —timeout 600

 

iptables -F

iptables -t nat -F

iptables-restore < /etc/iptables.rules

 

Блокируем пинги

iptables -A INPUT -p icmp --icmp-type 8 -j DROP

 

для windows

Примеры использования:

 

shutdown -r -t 20 -c “Перезагружаю компьютер через 20 сек.” — перезагружает локальный компьютер с таймером на 20 секунд и выводом комментария;

shutdown -s -t 600 — выключает локальный компьютер по истечении 600 секунд (10 минут);

shutdown -s -m \\user02 -t 20 -c “Закругляйся” — выключает удаленный компьютер user02 с таймером 20 секунд и комментарием;

shutdown -a — останавливает выполнения перезагрузки/выключения на локальном компьютере.

 

NftaЫes- замена iptaЫes/netfilteг. П люсы:

более гибкий и расширяемый

ABI , отсут­

ствие д ублирова н и я ко да [ i pta Ыes, агрtаЫеs

и еЫаЫеs — по сути, копии о дн ого и того

же ко да !, нет необходимости перезагрузки

всех nравил пр и каждом изменении [из-за

чего терялось вн утреннее состояние и все

у становленные соединения!. Концепция вы­

глядела мн огообещ ающе [подробнее можно

посмотреть в][ #1 271, но, видимо, этого было

недостаточно, чтобы перевесить популяр­

ность iptaЫes. В Fedoгa, кстати, для борьбы со

сбросо м соединений при изменении правил

с делали с пециаль ную прослойку- fiгewaii D ,

 

Домашний бэкап в Ubuntu

Déjà Dup

Back In Time

Duplicati

Simple Backup

APTonCD

 

Fail2Ban — простой локальный сервис, который просматривает логи на предмет попытки подоброать пароли к ssh, ftp, http-сервисам. Если такие попытки найдены, fail2ban блокирует ip-адрес источника. Сервис очень гибко настраивается — возможна блокировка через iptables или /etc/hosts.allow (deny), способен оповещать по email, писать лог, сбрасывать блокировку через заданное время и прочее.

В Debian 4.0 Fail2ban доступен в репозитарии пакетов, но и из исходников он просто разворачивается, только требует наличия python 2.4.

 

netstat -alpn | grep :443 | awk '{print $4}' | cut -d: -f1 |sort |uniq -c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

РАЗДЕЛИТЕЛЬ

deb file:///media/disk/home/aidsoid/Repositories/ru.archive.ubuntu.com/

 

deb file:////media/TERA/rep1104 natty main restricted multiverse universe

 

sudo nano /etc/apt/sources.list

 

 

РАЗДЕЛИТЕЛЬ

Установка Интернет сервера на работе

 

1. Установил Squid3

2. Примерные конфиги....

/etc/squid3/…

 

############################################

 

 

 

acl our_networks src 192.168.1.0/24

 

######################################1

 

 

 

 

 

# TAG: acl

 

# Defining an Access List

 

 

 

 

******************

 

 

 

#######################

 

acl all_users src 192.168.1.0/24

 

#################2

 

 

 

# Example rule allowing access from your local networks.

 

# Adapt to list your (internal) IP networks from where browsing

 

# should be allowed

 

 

 

******

 

 

 

##################

 

http_access allow our_networks

 

################3

 

 

 

http_access deny all

 

 

 

# TAG: adapted_http_access

 

# Allowing or Denying access based on defined access lists

 

 

 

*********

 

 

 

 

 

 

 

 

 

.....

 

вроде правильно iptables -t nat -A PREROUTING -i eth0 -d ! 192.168.1.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.1.1:3128

 

 

sudo /etc/init.d/squid3 restart (для тестирования изменений конфига)

 

Начал с этого.... взять конфиг с прописанными машинами

 

  1. Настала проблема пропуска инет на почтовые клиенты.... через проксю не получилось, пришлось в обход прокси.... а это…

 

http://forum.ubuntu.ru/index.php?topic=86557.0

 

вот так я настраиваю NAT

Для работы шлюза на сервере необходимо включить режим разрешения IP-перенаправления пакетов данных из одного интерфейса в другой. Для этого необходимо в файлt /etc/sysctl.conf раскоментировать строчки:

net.ipv4.ip_forward=1 — Включаем IP форвардинг

net.ipv4.tcp_syncookies=1 — Защита от Syn flood атаки

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

cat /proc/sys/net/ipv4/ip_forward

Результат выполнения команды должен быть равен 1.

#eth0 — в провайдера
#eth1 — в локалку

sudo su

вводим правила от рута

#Сначала обнуляем наши текущие правила
iptables -F
iptables -t nat -F

#Установим политики по умолчанию для трафика, не соответствующего ни одному из правил
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

#Теперь закроем наши сервисы так, чтобы они могли работать только для LAN
iptables -I INPUT 1 -i eth1 -j ACCEPT
iptables -I INPUT 1 -i lo -j ACCEPT
iptables -A INPUT -p UDP --dport bootps -i eth1 -j REJECT
iptables -A INPUT -p UDP --dport domain -i eth1 -j REJECT

#Отбросим все TCP/UDP-пакеты, обращающиеся к привилегированным портам
iptables -A INPUT -p TCP -i eth1 -d 0/0 --dport 0:1023 -j DROP
iptables -A INPUT -p UDP -i eth1 -d 0/0 --dport 0:1023 -j DROP

#В конце добавляем правила для NAT
iptables -I FORWARD -i eth1 -d 192.168.105.0/255.255.255.0 -j DROP
iptables -A FORWARD -i eth1 -s 192.168.105.0/255.255.255.0 -j ACCEPT
iptables -A FORWARD -i eth0 -d 192.168.105.0/255.255.255.0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

iptables-save > /etc/iptables.rules — сохраняю правила

Добавляю в /etc/network/interfaces

pre-up iptables-restore < /etc/iptables.rules — восстановление правил при запуске сети

 

 

РАЗДЕЛИТЕЛЬ

 

arp -a ввинде использовали, но и линукс видит комманду

 

РАЗДЕЛИТЕЛЬ

Инсталяция Мозиллы…

sudo add-apt-repository ppa:mozillateam/firefox-stable

 

 

 

sudo apt-get update

 

 

 

sudo apt-get install firefox language-pack-ru language-pack-ru-base

 

 

РАЗДЕЛИТЕЛЬ

 

Darkstat — небольшой и эффективный сниффер пакетов, позволяющий вам без особой головной боли учитывать на своей Linux-машине сетевой трафик. Darkstat имеет встроенный веб-сервер, обращаясь к которому вы получите довольно подробную статистику о потраченных вами кило-, мега- или гигабайтах.

Для того чтобы получить пакет darkstat воспользуйтесь synaptic-ом или наберите в терминале:

$ sudo apt-get install darkstat

введите пароль, если потребуется подтвердите (Да/Yes) установку пакета. Установится версия 2.6, но на данный момент на официальном сайте программы, доступна версия 3.0.707

После установки darkstat на вашу машину, надо кое-что поправить в вашем любимом Ubuntu ручками o_O

Итак, запускается darkstat командой:

$ darkstat -i eth0

в данном случае: -i eth0 - означает какой интерфейсслушатьдля сбора статистики (если у вас нужно считать другой интерфейс - укажите его)

Но если вы запустите эту команду в терминале, у вас может ничего не получиться, дело в том, что запускать darkstat можно только из под суперпользователя (su, sudo), иначе настройки безопасности просто не позволят ему запуститься.

Согласитесь, это не слишком удобно, каждый раз при входе в сеанс запускать терминал, и отдавать команду из-под суперпользователя? Статистика должна считаться не требуя от вас ежедневного запуска программы.

Поэтому нам надо автоматизировать процесс, то есть прописать запуск этой команды в /etc/rc.local

открываем терминал:

$ sudo gedit /etc/rc.local

редактируем файл и добавим до exit 0 пару строк: (darkstat -i eth0иecho darkstat is loading…” ):

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script willexit 0on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

darkstat -i eth0
echo darkstat is loading

exit 0

Есть еще один момент, ваш хост с Ubuntu скорее всего (если вы сами ничего не меняли и в сети у вас стоит DHCP-сервер) автоматически получает ip-адрес по DHCP — что опять же, вызовет определенные проблемы для нормального старта darkstat из rc.local. Тут можно жестко/вручную назначать ip-адрес, но возможно вы испытываете определенные затруднения с назначением ip-адреса через графический nm-applet (Приложение “Сеть”), я честно говоря привык все делать руками, поэтому привожу пример.

Надо вручную поправить файл /etc/network/interfaces :

$ sudo gedit /etc/network/interfaces

У меня он выглядит так:

auto lo
iface lo inet loopback

iface eth0 inet static
address 192.168.1.3
netmask 255.255.255.0
gateway 192.168.1.1
auto eth0

вторая часть как раз описывает сетевой интерфейс eth0, если вы не знаете что означают эти переменные, лучше ничего не меняйте, а найдите и прочитайте какую-нибудь статью по основам настройки локальных сетей. Если вы знаете, что такое ip-адрес, маска сети, шлюз, то можете спокойно заполнять их своими данными.

Соответственно, раз вы теперь не получаете адрес по DHCP, нужно вручную внести DNS в файл /etc/resolv.conf

$ sudo gedit /etc/resolv.conf

# generated by NetworkManager, do not edit!
nameserver aaa.bbb.ccc.ddd
nameserver aaa.bbb.ccc.ddd

Несмотря на устрашающую надписьне правьте, вам следует добавить вместо aaa.bbb.ccc.ddd ip-адреса вашего первичного и вторичного серверов имен (DNS).

После всех правок настроек (теперь вы знаете где хранятся файлы с настройками сети в Ubuntu :), можно перезагружать систему.

Узнать, что все заработало и посмотреть статистику можно если в браузере ввести адрес http://localhost:666/

 

РАЗДЕЛИТЕЛЬ

 

 

РАЗДЕЛИТЕЛЬ

 

 

РАЗДЕЛИТЕЛЬ

 

 

РАЗДЕЛИТЕЛЬ

 

 

 

 

 

 

РАЗДЕЛИТЕЛЬ

Старый внешний вид гнома, похожее в 11.10

 

sudo apt-get install gnome-session-fallback

 

РАЗДЕЛИТЕЛЬ

 

Cairo-Dock вернуть glx-dock (cairo-dock)

 

 

РАЗДЕЛИТЕЛЬ

 

ubuntu кнопки свернуть минимизировать закрыть справа

mezar пн, 11/07/2011 - 00:54

Кому то удобно, но явно не мне… Из-за долгих лет использования Windows ну очень тяжело себя переучить, да и зачем поэтому легче вернуть все как было, а не подстраиваться под удобства маководов. Перенести кнопки свернуть, минимизировать и закрыть в правую часть окна на Ubuntu можно одним из способов:

- Набрать команду в терминале

?

1

gconftool-2 -s "/apps/metacity/general/button_layout" -t string ":minimize,maximize,close"


- Запустить gconf-editor, нажав Alt+F2

  1. Перейти в apps/metacity/general

  2. Найти строку button_layout

  3. Заменить содержимое на:

?

1

:minimize,maximize,close

 

РАЗДЕЛИТЕЛЬ

Включите этот модуль, если он ещё не включен. На закладкеПрозрачностьв разделеСпецифические настройки окнажмёмСоздатьи заполняем появившееся окно следующим образом. Всё теперь во всех приложениях все все всплывающие (PopupMenu) и выпадающие меню (DropdownMenu) будут прозрачными. Вот как это выглядит у меня.

 

 

РАЗДЕЛИТЕЛЬ

 

VIRTUALBOX ДЛЯ МОНТИРОВАНИЯ FLASH ДИСКОВ

 

/etc/udev/rules.d/70-permissions.rules

 

добавляем

# USB флешка для VirtualBox

SUBSYSTEMS=="usb", ENV{DEVTYPE}=="usb_device", GROUP="vboxusers", MODE="0666"

SUBSYSTEM=="usb_device" GROUP="vboxusers" , MODE="0666"

 

 

РАЗДЕЛИТЕЛЬ

АВТОМОНТИРОВАНИЕ В УБУНТУ.

Есть специальные программки, облегчающие жизнь при монтировании. Например: Storage Device Manager, MountManager и KDE Partition Manager (для фанатов Kubuntu). Лично я отдал свое предпочтение первой.

 

РАЗДЕЛИТЕЛЬ

 

Архив TAR

Для упаковки директории в архив пишем:

 

tar -cvf new_arhiv.tar /Директория/которую/архивируем

 

Для распаковки

 

tar -xfj arhiv

 

tar -xvf arhiv.tar

 

РАЗДЕЛИТЕЛЬ

Как отформатировать USB-флешку (USB-стик, свисток и пр.) в Ubuntu?

 

администрирование

консоль

 

Также поискать съемный диск можно было с помощью команды:

sudo fdisk -l

 

Среди информации обо всех дисках, наверняка увидите и вашу флешку (например, по объему она будет явно отличаться от жестких дисков).

 

Если флешка примонтировалась автоматически, чего и происходит по умолчанию, то сначала нужно её отмонтировать (примонтированный раздел система форматировать не даст):

sudo umount /dev/sdg1

 

А затем можно и форматировать:

sudo mkdosfs -F 32 /dev/sdg1

 

РАЗДЕЛИТЕЛЬ

 

Gksu

РАЗДЕЛИТЕЛЬ

 

sudo ifconfig eth0 up команду: # sudo /etc/init.d/networking restart # sudo /etc/init.d/networking stop и их запуск: # sudo /etc/init.d/networking start

 

РАЗДЕЛИТЕЛЬ

 

Значки на раб. столе…

Nautilus, выбрать меню Правка -> Параметры… В появившемся окне на закладке "Вид" изменить "Исходный масштаб" в пункте "Просмотр в виде значков".

 

РАЗДЕЛИТЕЛЬ

 

PopupMenu|DropdownMenu 86

class=Nautilus

 

РАЗДЕЛИТЕЛЬ

назв. для линукс myagent-im для mail-agent

 

 

РАЗДЕЛИТЕЛЬ

 

ВРОДЕ РАБОЧИЙ squid ЭТО ВАРИАНТ ДЕЛАЛСЯ, НО СТАВИЛ (sudo apt-get install squid3) И НИЧЕГО НЕ НАСТРАИВАЛ СИЛЬНО

 

Расшариваем интернет

Интернет мы будем раздавать через кэширующий прокси сервер Squid.

 

sudo apt-get install squid

 

После установки правим /etc/squid/squid.conf

Находим строку # http_access deny all и под ней пишем:

 

http_access allow all

 

Т.е мы открыли нет всем. В моем случае, это как раз то, что нужно по этому настройка нашего прокси закончена.

 

/etc/init.d/squid restart

 

Теперь идем и настраиваем машины в сети на работу с прокси с нашим ip (у меня это 192.168.0.1) порт по умолчанию 3128

 

Теперь нужно завернуть нужные порты на squid, для этого прописываем правило:

 

iptables -t nat -A PREROUTING -i eth0 -d ! 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128

// У МЕНЯ БЫЛО iptables -t nat -A PREROUTING -i eth0 -d 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128

 

 

Включаем форвардинг:

 

echo 1 > /proc/sys/net/ipv4/ip_forward

 

Далее, для автоматического включения форвардинга добавляем в /etc/sysctl.conf:

 

net.ipv4.ip_forward = 1

 

Включаем NAT (ppp0 имя интерфейса, у меня он и есть ppp0):

 

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

 

Для работы NAT после перезагрузки:

 

iptables-save > /etc/iptables.up.rules

 

и добавляем в конец файла /etc/network/interfaces:

 

pre-up iptables-restore < /etc/iptables.up.rules

up route add -net 192.168.0.0 netmask 255.255.255.0 dev eth1

up route add -net 0.0.0.0 netmask 255.255.255.255 dev eth0

 

// У МЕНЯ БЫЛО…

pre-up iptables-restore < /etc/iptables.up.rules

up route add -net 192.168.6.0 netmask 255.255.255.0 dev eth0

up route add -net 0.0.0.0 netmask 255.255.255.255 dev eth1

 

 

 

РАЗДЕЛИТЕЛЬ

Какая-то настройка интернет 2

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

 

Появиласть необходимость раздавать интернет со своей машины, ну а как это проще всего сделать? Конечно же настроить NAT. В убунту это делается достаточно просто. Необходимо настроить iptables, есть в убунте такая штука.

 

Для начала посмотрим какие правила у нас в iptables прописаны, сделать это можно командами в консоли под root’ом:

 

sudo iptables -L

# iptables -L -t nat

 

После чего включим NAT и настроим маршрутизацию:

 

sudo iptables -t nat -A POSTROUTING -s 192.168.0.2 -j MASQUERADE

sudo iptables -A FORWARD -i eth0 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

sudo iptables -A FORWARD -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

 

где 192.168.0.2 — клиентский ip, вместо него может стоять и диапазон адресов 192.168.0./24

eth0 — локальная сеть

eth1 — интернет

 

Следующим шагом сохраняем правила:

 

sudo iptables-save

 

и проверив все ли правильно записано сохраняем правила в файл:

 

sudo sh -c "iptables-save > /etc/iptables.up.rules"

 

Для того, чтобы правила запускались при загрузке системы создаем скрипт в папке /etc/network/if-up.d

со следующим содержимым:

 

#!/bin/sh

iptables-restore < /etc/iptables.up.rules

 

Так же необходимо добавить или раскомментировать строчку (если закомментирована) в файле /etc/sysctl.conf со следующим содержанием:

 

net.ipv4.ip_forward = 1

 

Все должно заработать, по крайней мере у меня все прекрасно работает.

 

Если возникнет необходимость очистить iptables, необходимо в консоли выполнить следующее:

 

sudo iptables -F

sudo iptables -t nat -F

 

Удачи Вам!

РАЗДЕЛИТЕЛЬ

Какая-то настройка интернет 3

Пару дней назад купил нетбук Acer Aspire One A150 Bk и собрался подключить его к интернету через свой домашний компьютер. Сделал сетевой кабель. Подключил компьютеры в локалку (ip сетевых карт: 168.192.0.3 на компе и 168.192.02 на нетбуке). Чтобы долго не заморачиваться — все равно это временное решение, интернет на ноутбук решил раздавать через прокси-сервер squid. Так как кроме раздачи интернета от squid больше ничего не требуется, манипуляций с настройками провел совсем немного.

squid имеется в репозитории ubuntu. Устанавливаем: sudo aptitude install squid

 

Редактируем конфигурационный файл: sudo gedit /etc/squid/squid.conf

В нем нужно найти и раскомментировать (удалить символ #) четыре строчки:

 

1

2

3

4

 

 

http_port 3128

cache_dir ufs /var/spool/squid 100 16 256

http_access allow our_networks

acl our_networks src

 

По умолчанию, строка acl our_networks src у меня выглядела так:

 

1

 

 

#acl our_networks src 192.168.1.0/24 192.168.2.0/24

 

Айпишники удалил. Вместо них прописал свой: 168.192.0.3/24

 

И еще один момент. Нашел в файле конфига строку с номером 2161. В строке прописал visible_hostname proxy.localdomain

Перезапускаю squid: /etc/init.d/squid restart

Если ошибок не пишет, все должно работать правильно :)

Моя модель ноута идет с виндой на борту. Для включения интернета, в свойствах интернет эксплорера прописал в качестве прокси ip десктопной машины 168.192.0.3 и порт 3128. В принципе, все виндовые службы должны иметь доступ в интернет.. Еще в настройках фаерфокса отдельно добавлял подключение через прокси 168.192.0.3 и порт 3128

 

РАЗДЕЛИТЕЛЬ

Где-то делал

up route add -net 192.168.7.0 netmask 255.255.255.0 dev eth0

up route add -net 0.0.0.0 netmask 255.255.255.255 dev eth1

up route add -net 0.0.0.0 netmask 255.255.255.255 dev wlan0

 

второе

route -p add 192.168.4.0 mask 255.255.255.0 192.168.5.1

route -p add 192.168.5.0 mask 255.255.255.0 192.168.4.1

РАЗДЕЛИТЕЛЬ

 

 

РАЗДЕЛИТЕЛЬ

 

 

РАЗДЕЛИТЕЛЬ

 

 

РАЗДЕЛИТЕЛЬ

 

 

РАЗДЕЛИТЕЛЬ

 

 

РАЗДЕЛИТЕЛЬ

 

Настройка сети — работа.

 

ipv4address ....

10.78.0.95/24

192.168.1.95/24

 

ipv4route…

10.78.0.0/16 via 10.78.0.1

default via 192.168.1.111

 

 

Перезапускаем сеть… service network restart

 

Интернет через SSH без прокси

 

 

 

By admin ~ Январь 15th, 2009. Filed under: Console, Сеть.

 

 

 

Часто встречается ситуация, что есть неограниченный доступ по ssh к мировым сетям, но www трафик ограничен. Выкручиваются обычно, установкой на удалённой машине прокси и пробросом порта. Но оказывается есть способ без проброса порта.

 

 

 

Выполняем следующую команду:

 

 

 

ssh -D 5555 IP_server

 

 

 

, где IP_server — адрес вашего удаленного сервака с ssh.

 

 

 

Далее заходим в FireFox( Правка->Настройки->Дополнительно->Сеть->Настроить) и ставим

 

 

 

Узел SOCKS localhost 5555

 

 

 

В результате имеем доступ к интернету без установки проксей.

 

 

 

 

*************************

 

 

 

 

 

Поддержка Interbase (Firebird) в Apache 2, PHP 5 в операционной системе Linux Ubuntu

 

Как ни странно, с Linux Ubuntu не идут пакеты для работы с Firebird (Interbase) в PHP5, Apache2. И в Рунет нет информации о том, как же включить поддержку Interbase в PHP5.

 

Однако, я нашел информацию об этом в англо-язычном интернет и включил.

 

 

 

Для того, чтоб включить поддержку Interbase (Firebird) в PHP 5, необходимо проинсталлировать пакет:

 

php5-interbase_5.2.1-1_i386.deb (37.0 KB).

 

После установки пакета (dpkg -i php5-interbase_5.2.1-1_i386.deb) перезагрузите Apache и Interbase (Firebird) у Вас заработает.

 

 

 

Кроме того, советуют создать файл /etc/php5/conf.d/interbase.ini с таким содержимым:

 

# configuration for php interbase module

 

extension=interbase.so

 

 

 

Но, вполне возможно, что это Вам не понадобится.

 

 

 

Есть и такое sudo apt-get install apache2 php5-interbase firebird2.0-classic

 

 

*************

 

Прведу список логических операторв, которые используются для конструкции if-then-else-fi:

 

 

 

-z # строка пуста

 

-n # строка не пуста

 

=, (==) # строки равны

 

!= # строки неравны

 

-eq # равно

 

-ne # неравно

 

-lt,(< ) # меньше

 

-le,(<=) # меньше или равно

 

-gt,(>) #больше

 

-ge,(>=) #больше или равно

 

! #отрицание логического выражения

 

-a,(&&) #логическое "И"

 

-o,(//) # логическое "ИЛИ"

****************8

 

 

 

Резервирование системы

 

Самый простой консольные команды способ полностью заархивировать систему в один Tar-архив,

 

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

 

надо с правами суперюзера зайти в консоли в корень системы и затарить

 

все данные:

 

 

 

sudo su

 

cd /

 

tar cvpzf systembackup.tgz −−exclude=/proc −−exclude=/lost+found

 

−−exclude=/systembackup.tgz −−exclude=/mnt −−exclude=/sys /

 

 

 

 

где «−−exclude» — это параметр, который указывает какие разделы

 

архивировать не стоит. Тут уж сами решаем, кому чего нужно…

 

 

 

Бывает, что в конце выполнения команды можно получить ошибку «tar: Error

 

exit delayed from previous errors». Однако, ее можно игнорировать.

 

 

 

Результатом выполнения этих нехитрых команд будет появление

 

systembackup.tgz в корневой директории. После этого файлик можно

 

закинуть в любое удобное место и хранить до «черного дня» :)

 

 

 

Восстановить систему из файла можно по-разному. Например, загрузиться с

 

LiveCD и распаковать архив в корень голой системы. А можно просто

 

распаковать на уже готовую систему, заменив все, после чего получим ту

 

систему, из которой мы делали резервную копию…

 

 

 

tar xvpzf backup.tgz -C /

 

 

 

 

Этим мы перезапишем все что есть на диске, восстановив систему в точке

 

сохранения. Прежде, чем делать восстановление на работающую систему,

 

необходимо проверить, что на диске нет важных файлов, которые могут быть

 

затерты…

 

 

 

Есть еще разные «гуёвые» приблуды для клонирования системы, но мы же

 

легких путей не ищем ;)

 

 

********************************

А ведь вполне реально и под KDE, и под GNOME добавить в авторан — тогда большинство Линукс юзеров тоже будут заражены…

 

ХЗ честно как под гномом, а под KDE — достаточно поместить в ~/.kde4/Autostart/

********************************

 

Установка файла .deb

Всякий раз, когда вам, независимо от причины, требуется установить файл .deb, нужно обратиться к утилите dpkg. Утилита dpkg является инструментом, который в дистрибутивах, базирующихся на Debian, используется для установки файлов .deb. (Даже когда вы пользуетесь автоматическими средствами управления пакетами, на самом деле за кулисами в системе для установки пакетов используется dpkg). Если вы знакомы с инструментальным средством rpm, используемых в дистрибутивах, базирующихся на пакетах RPM, то обнаружите, что у dpkg похожий синтаксис. Чтобы установить из командной строки обычный файл .deb, наберите следующее:

whiprush@ubuntu:~$ sudo dpkg -i packagename.deb

Замените packagename.deb на имя файла .deb, который вы хотите установить. Если у вас есть несколько файлов, которые вы хотите одновременно установить, вы можете в командной строке перечислить их один за другим

whiprush@ubuntu:~$ sudo dpkg -i package1.deb package2.deb package3.deb

или используйте универсальный символ [Совет # 13], чтобы установить все файлы .deb, которые есть в текущем каталоге:

whiprush@ubuntu:~$ sudo dpkg -i *.deb

Утилита dpkg также имеет параметр, задающий рекурсивное исполнение (-R). Если у вас есть директорий, заполненный файлами deb, вы можете установить их следующим образом:

whiprush@ubuntu:~$ sudo dpkg -i -R /path/to/directory

и утилита dpkg будет рекурсивно искать и устанавливать все файлы .deb, которые находятся в этом директории и во всех его поддиректориях.

Иногда, когда вы устанавливаете пакет с помощью утилиты dpkg, установка может прерваться из-за того, пакет помечен как hold, поскольку он конфликтует с другим пакетом, или он зависит от других пакетов, которые не установлены, или при установке пакета делается попытка переписать файлы, относящиеся к другому пакету, или по ряду других причин. В dpkg есть ряд параметров --force, которые вы можете использовать для того, чтобы игнорировать эти проблемы и продолжить установку пакета.

Предостережение

Параметры --force предназначены только для экспертов, которые хорошо знакомы с системой пакетов .deb и с зависимостями, имеющимися внутри системы. Как правило, установка пакетов прекращается по серьезным причинам и, если вы новичок и вы заставляете устанавливать пакет в любом случае, установка, скорее всего, закончится для вас вышедшей из строя системой. Поэтому пользуйтесь этими параметрами с осторожностью.

Чтобы посмотреть полный список параметров --force, наберите следующее:

whiprush@ubuntu:~$ dpkg --force-help

К числу наиболее полезных параметров относятся следующие:

--force-hold

Установка пакета, даже если он отмечен как hold.

--force-overwrite

Установка пакета, даже если он может переписать файлы из другого пакета.

--force-depends

Выдать список ошибок об отсутствующих зависимостях и в любом случае продолжить установку.

--force-conflicts

Даже если пакет конфликтует с другим пакетом, в любом случае продолжить установку.

Так что если у вас есть файл .deb, который необходимо установить и который переписывает файлы из другого пакета, и вы все проверили и решили, что все будет в порядке, то для того, чтобы продолжить, введите:

whiprush@ubuntu:~$ sudo dpkg -i --force-overwrite packagename.deb

Удаление пакета

Иногда вам может потребоваться удалить отдельный пакет вручную. В dpkg есть параметры -r и -P, предназначенные для удаления пакета и удаления пакета с очисткой конфигурационных файлов, соответственно. Чтобы удалить пакет, введите:

whiprush@ubuntu:~$ sudo dpkg -r packagename

Обратите внимание, что вы не указываете расширение .deb в имени файла, который вы, возможно, перед этим устанавливали, — только имя самого пакета. Когда указывается параметр -r, dpkg будет искать и удалять все файлы этого пакета, кроме конфигурационных файлов, которые будут оставлены на случай, если программа будет устанавливаться еще раз. Если вы хотите очистить систему от всех файлов, включая конфигурационные файлы, используйте параметр -P:

whiprush@ubuntu:~$ sudo dpkg -P packagename

*****************************

 

Совет # 54: Управление пакетами из командной строки

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

В Ubuntu есть ряд очень хороших графических инструментов для управления программными пакетами с рабочего стола, но иногда вам нужно просто что-то сделать своими руками, чтобы получить результат. В серверах, как правило, не установлена графическая среда рабочего стола, и если вы управляете машинами дистанционно через shell оболочку, вам нужно знать, как в командной строке воспользоваться средствами управления пакетами, имеющимися в Ubuntu.

В Ubuntu прилагаются усилия к обеспечению единообразия в процессе управления программным обеспечением. Все программное обеспечение упаковывается с использованием строго определенного формата, в котором хранится сама программа, а также информация о том, как программа должна устанавливаться, и все пакеты, которые имеются на вашем компьютере, используют тот же самый формат. Средства управления пакетами организованы в виде слоев, при этом каждый слой базируется на слоях, расположенных ниже. На самом низком уровне находится приложение dpkg, которое непосредственно управляет пакетами; инструментальные средства среднего уровня, такие как apt, находятся выше dpkg и предоставляют больше функциональных возможностей, например, такие как автоматическое разрешение зависимостей; а такие инструментальные средства высокого уровня, как Synaptic и Adept, размещены поверх apt и позволяют вам в графическом режиме простым щелчком мыши просмотреть списки пакетов и выполнить их установку.

Приложение dpkg

Приложение dpkg является основой системы управления пакетами Debian, которое позволяет непосредственно манипулировать пакетами. Если у вас на локальном диске есть пакет с названием program-1.0-1.deb, который вы хотите установить, то dpkg является именно тем инструментом, который следует использовать. Поскольку это очень важная часть системы управления пакетами, ей будет посвящен отдельный совет [Совет # 57].

apt и его друзья

Хотя первоначально ничего не предполагалось использовать в качестве инструментального интерфейса, в последующем между приложением dpkg и инструментальными средствами, ориентированными на конечного пользователя, такими как Synaptic и Adept, стал применяться apt, который, пожалуй, является самым распространенным способом управления пакетами из командной строки.

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

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

Получить текущий список пакетов от всех серверов
Если вы не сделаете этого время от времени, ваш локальный список доступных пакетов может устареть. Выполняйте эту команду время от времени перед тем как запускать команду dist-upgrade или пытаться найти новый пакет. Списки пакетов большие и во время обновления списков из интернета будут скачаны данные размером в несколько мегабайт:
$ sudo apt-get update
Выполняйте поиск по ключевым словам
Команда search выполняет поиск в списках доступных пакетов, в том числе поиск по именам и описаниям. Вы можете использовать несколько ключевых слов, например, apt-cache search text editor для того, чтобы найти список текстовых редакторов:
$ apt-cache search keywords
Получение дополнительной информации
После того, как вы с помощью команды apt-cache search найдете пакет, который вам покажется интересным, вы можете воспользоваться командой apt-cache show program для того, чтобы получить о нем дополнительную информацию. Вам будет предоставлены такие сведения, как размер пакета (важно, если вы устанавливаете его через Интернет) и его подробное описание, а также информация о том, от каких других пакетов зависит работа данного пакета и имя разработчика, который поддерживает пакет:
$ apt-cache show program
Установка пакета
С помощью этой команды вы можете получить последнюю версию конкретного пакета и установить его вместе с другими пакетами, от которых зависит его работа. Если запрашиваемый пакет уже установлен, он будет обновлен до последней доступной версии:
$ sudo apt-get install program 
Удаление программы
Если вы ранее установили программу и решили, что она вам больше не нужна, вы можете удалить ее с помощью этой команды. Поскольку некоторые пакеты программ могут зависеть от других, удаление одной программы может привести к прекращению работы других программ. Поэтому когда вы запускаете программу apt-get remove, сначала будет проверено, есть ли другие программы, работа которых зависит от удаляемой программы, и вам будет предложено их также удалить. Это только один пример того, насколько качественно были разработаны инструментальные средства управления пакетами, имеющиеся в Ubuntu и благодаря которым ваш компьютер не прекращает работать из-за неработающего или не полностью установленного программного обеспечения. Конечно, есть вероятность нарушить работу Ubuntu, но, в целом, вы должны удалить программы, предлагаемые к удалению. Команда remove также имеет параметр --purge, при использовании которого удаляется не только сама программа, но также и связанные с ней конфигурационные файлы:
$ sudo apt-get remove program $ sudo apt-get remove --purge program
Обновление вашей системы
С течением времени большинство пакетов программного обеспечения, которые есть на вашем компьютере, устаревает, т. к. появляются новые версии, в которых добавлены новые функции и исправлены ошибки. Вы можете каждый раз вручную выполнять команду apt-get install foo, но это не очень удобно, поэтому apt предоставляет простой способ сразу обновить всю систему. Просто наберите команду apt-get upgrade и apt проверит наличие новой версии для каждого пакета в вашей системе, а затем ее загрузит и установит. Эта команда никогда не будет устанавливать новые пакеты, она предназначена только для обновления пакетов, которые уже установлены:
$ sudo apt-get upgrade
Выполнение полного обновления
Иногда у вас уже установлен пакет и выходит новая версия, в которой есть много новых возможностей, поэтому, она теперь при работе зависит от некоторых других программ. Например, у вас уже может быть установлен видеопроигрыватель, который поддерживает много различных видеоформатов. Когда появляются новые видеоформаты, модули для них могут добавляться в виде отдельных пакетов, так что последняя версия видеоплейера теперь зависит от нового пакета, который еще не установлен в вашей системе. Если вы просто запустите команду apt-get upgrade, вы получите последний видеоплеер, но вы не получите все новые пакеты видеоформатов. Команда apt-get dist-upgrade позволит вам решить эту проблему: она не только получит самую последнюю версию каждого уже установленного пакета так, как это делает команда apt-get upgrade, но также установит все необходимые новые пакеты, которых еще может не быть в вашей системе. Если вы хотите, чтобы ваша система находилась в постоянно обновленном состоянии и в ней были использованы все обновления, связанные с безопасностью, лучший способ этого добиться — это время от времени запускать команды apt-get update; apt-get dist-upgrade:
$ sudo apt-get dist-upgrade
Очистка кэша
Когда вы просите утилиту apt установить пакет программного обеспечения, она загружает пакет и прежде, чем выполнить инсталляцию, сохраняет его в кэше на жестком диске. Если вы затем удалите пакет, но позже передумаете и захотите снова его установить его, утилите apt не потребуется его искать в интернете, поскольку пакет находится в локальном кэше. Это хорошо для экономии объема скачиваемых данных, но через некоторое время кэш может занимать значительное пространство на жестком диске, так что хорошо периодически удалять из него старые пакеты. Запуск команды apt-get clean полностью очистит кэш пакетов, возможно, высвободив драгоценное дисковое пространстве. Эта команда абсолютно безопасна, потому что самое худшее, что может случиться, это то, что утилите apt, возможно, потребуется загрузить пакет снова, если вы его удалили, а затем его переустанавливаете:
$ sudo apt-get clean
Интеллектуальная очистка кэша
Команда autoclean почти такая же, как команда clean, за исключением лишь того, что она чуть-чуть умнее: вместо очистки всего кэша пакетов, она удаляет только те пакеты, для которых есть замена. Например, в вашем кэше пакетов могут быть последние четыре версии текстового редактора, который обновлялся несколько раз. Запуск команды apt-get autoclean удалит из кэша старые три версии, оставив только последнюю. Это имеет смысл, поскольку вы, скорее всего, будете переустанавливать именно последнюю версию:
$ sudo apt-get autoclean

Облегчаем работу ленивым

Если вы проводите много времени, работая в командной строке, вы можете облегчить себе жизнь созданием сокращений (ярлыков) для часто используемых команд. Добавьте в ваш файл ~/.bashrc следующие строки:

alias agi='sudo apt-get install' alias agu='sudo apt-get update' alias ags='apt-cache search' alias agsh='apt-cache show' alias agr='sudo apt-get remove' alias agd='sudo apt-get dist-upgrade'

Теперь вам не придется набирать целиком команды. Для поиска, например, просто наберите ags foo и введите пароль, если он потребуется. Лень — великая вещь!

 

**************************************

 

 

Совет # 59: Установка программ из исходных кодов

Когда нет репозитария и нет пакета, надежда все еще остается. В этом разделе описывается, как собрать из исходного кода и установить отдельно взятые программы.

Раньше считалось, что, когда вы хотите установить под Linux новую программу, вы должны перейти на домашнюю страницу проекта, найти архив с исходным кодам, скачать его, а затем раскрыть архив и откомпилировать исходный код. Сначала в терминал будет выдано достаточно много текстовых сообщений, после чего ваша программа будет окончательно установлена. На самом деле, такой подход был обычным явлением, поэтому многие дистрибутивы поставлялись со всеми установленными основными компиляторами и библиотеками. Ах, старые добрые времена ....

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

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

  2. Если программное обеспечение зависело от других программ, вам, как правило, требовалось их загрузить и откомпилировать первыми, только для того, чтобы выяснить, есть ли у них также внешние зависимости, поэтому также нужно было посетить страницы и этих проектов для того, чтобы также отследить эти зависимости.

  3. Наконец, после того, как вы потратите огромное количество времени для отслеживания всех зависимостей и успешной установки программного обеспечения, разработчик как раз выпустит новую версию с большими возможностями и меньшим количеством ошибок, вам придется все начинать с начала.

В настоящее время почти в каждом дистрибутиве, в том числе и в Ubuntu, не только используются пакеты (программы, которые были откомпилированы и собраны специально для вас), но также применяются некоторые средства автоматического управления зависимостями. Если вы хотите установить программу, вы должны только сообщить системе Ubuntu, какую программу требуется установить, и система найдет ее и все ее зависимости, и установит их для вас. Если вы хотите выполнить обновление, Ubuntu найдет для вас новые зависимости и новые версии. В настоящее время так мало программ, для которых нужно скачивать и компилировать исходный код, что Ubuntu даже не устанавливает (по умолчанию) те программы, которые нужны для компиляции исходного кода. В девяти случаях из десяти, пакет, который вам нужен, либо уже есть в дистрибутиве, либо, по крайней мере, уже имеется в виде предварительно откомпилированного пакета .deb (как установить такие пакеты, описывается в разделе "Устанавливаем и удаляем отдельные файлы .deb" [Совет # 57]).

Кроме всего вышесказанного, есть еще несколько обстоятельств, при которых от вас потребуется загрузка и компиляция программы из исходного кода:

  • Был выпущен совершенно новый проект с открытым кодом. Он настолько новый, что никто еще не решил собрать его в виде пакетов для Ubuntu.

  • Есть некоторая особенность в ядре или в иной программе, которая по умолчанию отключена, или есть патч, который вы бы хотели добавить, поэтому вам необходимо скомпилировать ядро из исходного кода. (Впрочем, вы можете узнать, что можно настроить пакет .deb с исходным кодом [Совет # 63] таким образом, чтобы получить то, что вам нужно).

  • Сторонний производитель оборудования выпустил драйверы для Linux, однако, они выпущены только в виде исходных кодов (или, возможно, они реализованы только в виде пакетов RPM, предназначенных для Red Hat и SUSE, а для любых других дистрибутивов — в виде файла .tar.gz), а для Ubuntu еще не выпущен какой-нибудь уже готовый для использования пакет.

  • Вы сами программист и хотели бы оказать помощь проекту с открытым исходным кодом, подготовив для него патчи, либо, возможно, вы хотите начать работу целиком над новым проектом.

  • Вышла новая версия программы и вы не можете ждать, пока она появится в виде пакета,поэтому вы должны собрать пакет самостоятельно. (Впрочем, заметим, что, в зависимости от того, с какой программой вы имеете дело, есть риск вывести из строя другие части системы, зависящие от старой версии программы. Обычно, когда должна обновляться программа, влияющая на работу других программ, ее установка и установка ее зависимостей должны происходить до их полной установки под контролем менеджером пакетов).

Предостережение

В мире программного обеспечения, предназначенного для установки под Ubuntu, компиляция программы из исходных кодов должна быть самой крайней мерой. Если вы не знаете, что делаете, то есть большая вероятность, что вы можете вывести из строя вашу систему и разрушить ее зависимости. Пожалуйста, испробуйте все другие возможности, которые есть в вашем распоряжении, в том числе встроенные в Ubuntu менеджеры пакетов, упомянутые в разделах "Управление пакетами из командной строки" [Совет # 54], "Управление пакетами с помощью Synaptic" [Совет # 55], и "Управление пакетами с помощью Adept" [Совет # 56]. Если они вам не подходят, попробуйте найти предварительно откомпилированный пакет .deb и следуйте инструкциям, приведенным в разделе "Устанавливаем и удаляем отдельные файлы .deb" [Совет # 57]. Наконец, если все эти варианты для вас не подходят, то читайте этот раздел дальше.

Установка средств компиляции

Если вам требуется выполнять компиляцию из исходного кода, вам сначала нужно установить компилятор и все другие пакеты, необходимые для сборки программ из исходных текстов. В Ubuntu это делается просто: достаточно открыть менеджер пакетов, которым вы предпочитаете пользоваться, а затем найти и установить пакет build-essential. Будут получены и установлены компилятор GNU C (gcc), make, g++, а также ряд других программ, которые вам потребуются:

$ sudo apt-get install build-essential

Получаем и компилируем исходный код

После того, как все эти программы будут установлены, скачайте tar-архив вашей программы и распакуйте его куда-нибудь, например, в ваш домашний директорий. Большинство архивов извлекаются в свои собственные директории (часто имеющие то же название, что и программа), так что следующим шагом будет переход (с помощью команды cd) в этот директорий:

greenfly@ubuntu:~$ tar xvzf program.tar.gz greenfly@ubuntu:~$ cd program/

Для большинства сегодняшних программ используется обычный трехшаговый метод конфигурирования и компиляции, но прежде, чем вы запустите этот процесс, вам следует прочитать инструкции по установке, которые предоставлены разработчиком (как правило, в главном директории с исходным кодом в файле с названием INSTALL или README в, или на главной странице проекта).

Шаг 1: Конфигурирование

Первый шаг процесса создания, как правило, состоит в запуске скрипта configure, который расположен в главном директории с исходным кодом:

greenfly@ubuntu:~/program$ ./configure

Эта программа просканирует систему и проверит наличие всех библиотеки, которые необходимы программе, а также найдет пути к некоторым файлам и выполнит другие настройки. Если у вас нет всех библиотек, которые нужны программе, скрипт configure выдаст сообщение об ошибке и укажет, какой библиотеки не хватает (или о том, что нужна более новая версия). Если вы увидите ошибку этого вида, вам потребуется не только выяснить, в каком пакете находится эта библиотека, но также загрузить пакет для разработчика, в котором находятся все заголовочные файлы для этой библиотеки (в Ubuntu большинство таких пакетов имеют в конце дополнение -dev). Как только эти библиотеки будут установлены, снова запустите скрипт configure, чтобы увидеть, есть ли все остальные библиотеки, которые вам необходимы.

Шаг 2: Компиляция

После того, как скрипт configure успешно завершит свою работу, следующим шагом будет компиляция исходного кода. В большинстве сегодняшних проектов вместе со скриптом configure используется скрипт makefiles, так что следующим шагом будет запуск make из главного директория с исходным кодом:

greenfly@ubuntu:~/program$ make

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

Шаг 3: Установка

После того, как исходный код скомпилирован, последним шагом будет установка программы в системе. В большинстве программ функция, которая выполняет установку, находится в файле makefiles; однако, отметьте, что вы, вообще говоря, должны устанавливать программу с правами root, поскольку потребуется устанавливать файлы в директорий /usr и другие директории, запись в которые возможны только с правами root. Убедитесь, что вы все еще находитесь в директории с исходным кодом, и наберите:

greenfly@ubuntu:~/program$

Теперь программа будет установлена в системе.

Подсказка

В некоторых пакетах есть также функция "uninstall" ("удалить"), которая удаляет программу из системы. Просто вернитесь обратно в основной директорий с исходными кодами и выполните команду:

greenfly@ubuntu:~/program$

Совет по поводу совета

В большинстве случаев при установке пакета используется процедура, которая устанавливает приложение в директорий /usr/local. Но если вы хотите быть уверены, что установка будет выполняться подальше от той части файловой системы, которая контролируется Ubuntu, добавьте к команде ./configure параметр --prefix=pathname следующим образом:

greenfly@ubuntu:~/program$ ./configure --prefix=/opt

Это работает почти всегда. Однако есть некоторые программы, в которых параметр --prefix не используется, а некоторые программы (такие как те, которые добавляются в модули ядра) будут размещать свои компоненты по всей файловой системе.

 

 

*******************************

Linux

Linux — вторая ОС, которую я использую  как на работе, так и дома. Один только недостаток — слабое распостранение игр в этих операционках. Но многие пользователи не замечают много плюсов в этой системе, а дизайн и рабочие столы давно обошли саму Windows, уже вдаваясь в подробности преемуществ для обслуживания серверов. Предпочитаю сборки Ubuntu, Kubuntu и Mint

 

http://www.nixp.ru

http://www.linuxrussia.com/

 http://www.opennet.ru/

 

Книги.

Ubuntu и Debian Linux для продвинутых. В личном архиве как rsload.net.Linux.dlya.prodvinutyih.zip  (досточно объемная и полезная, есть второе издание)