вторник, 26 августа 2008 г.

suse 11 servers

Установка и настройка файлового сервера:
При установки ОС ставим галочку на "Установка файлового сервера"
Создаем папку для файл /home/files сервера с правами 755, в ней, например, all c 777 и vit c 755.
YaST-сетевые службы-samba - добавляем необходимую директорию(/home/files) для общих файлов(Только для чтения - ставим нет).
Выбираем свойства /home/files, на вкладку - "сделать общим" и выстанавливаем нужные параметры.
Готово! По сложности не тяжалей, чем в windows ОС.
Заход на файловый сервер с windows машин осуществляется обычно, например, \\192.168.7.5
___________________________
Установка и настройка ftp сервера:
Вместе с файловым сервером в suse устанавливается ftp сервер - vsftpd
Нужно учесть, что для анонимных пользователей на сервер создается пользователь ftp, поэтому если нужно поменять путь к папке для анонимусов, то необходимо в /etc/passwd и /etc/passwdYaST2save у пользователя ftp поменять путь на нужный(/home/ftp).
Перед изменением лучше сделать копии этих файлов.
В конфигурации ftp сервера выставляем необходимые параметры.
Не забываем открыть порт в брандмауэре.
В каталоге ftp, chmod'ом выставляем нужные права на вложенные папки.
Теперь ftp работает. Можно заходить капировать и скачать с него файлы, но при попытки удалить или переименовать, вылетает ошибка, что нет прав, т.к. после копирования файла, ему присваиваются права 700 для ftp пользователя.
Лезем в конфигурационный файл сервера, который находится в /etc/vsftpd.conf. и правим:
аnonymous_enable=YES #разрешаем вход анонимусам.
local_enable=YES #разрешаем вход локальным пользователям.
write_enable=YES #разрешаем выполнение команд STOR, DELE, RNFR, RNTO, MKD, RMD, APPE and SITE.
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES #даем анонимусам право записи и т.п.
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
Теперь анонимные пользователи могут копировать, переименовывать и удалять файлы!
При доступе на сервер не воспринимаются русская кодировка.
Проблема решается....
___________________________
Удаленный доступ
В YaST разрешается удаленный коннект к ПК и расшаривается порт на брендмауере.
С удаленного ПК можно коннектится через web-браузер:
http://xx.xx.xx.xx:5801
Либо через krdc: vnc://192.168.0.1:5901
Через bash:
vncviewer 192.168.7.16:5900
-viewonly
-fullscreen
-x11cursor

Для доступа по rmt на windows XP:
rdesktop 192.168.7.10 -u remote -p pass -g 1024x768 где пользователь remote, пароль pass и расширения экрана 1024 на 768

При доступе c windows(vncviewer) на linux, нужно в клиенте убрать галку в опциях с "auto select". Иначе, при подключения к vncserver на linux, будет выкидывать клиента.
___________________________
Мониторинг ОС
free - показывает использованной и свободной ОЗУ и SWAP
ps -auxf показывает все выполняемые процессы
top - загрузка процессора
[
shift+n — сортировка по PID;
shift+a — сортировать процессы по возрасту;
shift+p — сортировать процессы по использованию ЦПУ;
shift+m — сортировать процессы по использованию памяти;
shift+t — сортировка по времени выполнения.
]
tload - график загрузки
uptime - время работы ОС, кол-во вошедших в неё пользователей и загрузка ОС.
vmstat - статистика swap
Инфо по данной теме
Инфо по top
___________________
Дополнительные команды:
date – вывести текущую дату и время
cal – вывести календарь на текущий месяц
uptime – показать текущий аптайм
w – показать пользователей онлайн
whoami – имя, под которым вы залогинены
finger user – показать информацию о user
uname -a – показать информацию о ядре
cat /proc/cpuinfo
– информация ЦПУ
cat /proc/meminfo – информация о памяти
man command – показать мануал для command
df – показать инф. о использовании дисков
du – вывести “вес” текущего каталога
free – использование памяти и swap
whereis app – возможное расположение программы app
which app – какая app будет запущена по умолчанию
___________________
Сетевые команды:
ping -c 3 www.ru - Пинг 3-мя пакетами
traceroute www.ru трассеровка www.ru(запускается только под рутом)
mtr www.ru - My traceroute
host www.ru - покажет ip адрес доменного имени www.ru(host 194.87.0.50 - наоборот)
nslookup - Показывает ip по доменному имени и наобо
netstat -tupl - Список интернет сервисов в системе
netstat -tup - Список активных соединений к системе (от системы)
netstat -r - выводит маршрутизацию
ifup/ifdown re0 - подымает и опускает интерфейс re0
sockstat выводит все активные соединения к сетевому интерфейсу во freeBSD
tcpdump — утилита, позволяющая захватывать и анализировать сетевой трафик, проходящий через компьютер, на котором запущена данная программа(tcpdump -i eth0 > /1.txt сохраняет трафик в /1.txt на интерфейсе eth0)
arp -a выводит все подключения к сетевым интерфейсу по MAC адресам
___________________
Работа с SAMBA клиентом:
nmblookup -M -- - {Выводит Master Browser, которая следит за остальными машинами в сети, контролирует их SMB имена и IP}
nmblookup -SA 192.168.1.1 Выводит дополнительную информацию по Master Browser.
nmblookup -T "*" Выводит компьютеры, совместно использующие файлы и принтеры.
smbclient -L 192.168.7.24 Выводит общие ресурсы на 192.168.7.24 для анонимного пользователя.
smbclient -L 192.168.7.24 -U vital Выводит общие ресурсы для vital.
smbclient //192.168.7.24/vital -U root Заходит в папку vital под пользователем root.
smbclient //192.168.7.10/c$ -U admin Заход на диск C windows

Команды smb и ftp:
get скопировать файл на локальную машину, например, smb: \kav\kis6.0\russian\> get setup.exe
help
lsd изменить текущий каталог на локальной машине
put скопировать указанные файла на сервер samba, например, put 11.txt - копирует 11.txt.
Удаленное копирование
scp опции пользователь@хост1:файл1... пользователь@хост2:файл2
Опции программы scp

  • -r -- Выполнить рекурсивное копирование каталогов
  • -p -- Сохранить по возможности атрибуты файлов (права доступа, время модификации, время доступа) при копировании
  • -C -- Выполнять сжатие файлов при передаче
  • -P порт -- Соединяться с удаленным компьютером по порту порт
  • -v -- Сообщать отладочную информацию о ходе SSH-соединения
  • -q -- Не выдавать индикатор прогресс

suse 11 desktop

Член домена:
Наверное, здесь нет равных suse. Вводится в домен очень просто -
YaST - сетевые службы - samba, настраиваем св-ва идентификации, потом переходим "Членство в домене windows", настраиваем принадлежность, установить галочку "создать домашний каталог при входе в ОС", иначе при входе пользователем из AD в suse, вылетает ошибка.
_________________________
Установка из исходников:
/.configure
make
make install
make cleaner

Если в каталоге нет makefile, то создается он командой qmake. А так же необходимо поставить qca, что бы можно было конфигурировать.
________________________
Пример установки psi 0.10(гибрид icq) на suse 11 и mandriva 2008
Скачал архив исходников psi-0.10.tar.bz2, разархивировал его.
При конфигруации исходников ./configure, выдал ошибку, что нужен пакет qmake. Через YaST нашел данный пакет с помощью запроса qca. После этого конфигурация прошла без проблем. Запустил make, потом make install.
Запускающий файл установился: /usr/local/bin/psi
Работает и через прокси(в kopete не нашел, где настраивать proxy)
Готово!!!
________________________
Установка с пакетов:
rpm -Uhv paket.rpm - устанавливает/обновляет пакет.
rpm -e paket - удаления пакета(указывается только имя пакета)

________________________
Установка принтера hp1020 на сервер CUPS suse 11 и подключению к нему по сети другой ПК на suse 11.
В установленной системе нет драйверов на hp laserjet1020, поэтому пришлось качать foo2zjs.tar.gz и устанавливать.
make uninstall
make
make install
make cleaner
Потом через YaST подключил его локально и настраиваем CUPS сервер для того, что бы через него могли печатать удаленные ПК. Добавляем адреса просмотра, например, 192.168.7.*, 192.168.7.255, 192.168.7.23, @LOCAL и изменяем права доступа.
Так же конфигурация cups производится через web-интерфейс: http://localhost:631
На удаленном ПК при добавления сетевого принтера, выбираем удаленная учередь IPP, указываем имя узла(я указал ip) и добавляем имя удаленного принтера. Потом добавляем нужные драйвера из списка.
Готово!!!
________________________
Установка с командной строки:
yast -i progs
________________________

Mandriva 2008 desktop

urpmi --auto-update Обновление установленных пакетов в системе.

FreeBSD

В разработке!!!

FreeBSD servers

___________________________
FTP server(ftpd):
Данный сервер передает данные по сети в не защищенном виде.
Проверил работоспособность демона inetd командой
ps -waux | grep inetd
Добавил в файл /etc/rc.conf
inetd_enable="YES"
А в файле разкомментирвал строчки ftp.
Перезапустил демон:
/etc/rc.d/inetd stop
/etc/rc.d/inetd start
Проверил работоспособность ftp
ftp localhost
/etc/ftpusers - в этом фале запрещенные пользователи или группы(@users)
При создания файла touch /var/run/nologin - сервер запрещает к нему подключение
Для добавление анонимных пользователей, нужно в
sysinstall->Configure->Networking поставить галочку на AnonFTP
Для отключения пользователя anonymuos можно удалить пользователя ftp или дерево /var/ftp
___________________________
Маршрутизатор:
Перенаправление пакетов с одного сетевого интерфейса на другой включается в /etc/rc.conf
gateway_enable="YES"
Необходимо включить firewll и nat в файле ядра
options IPFIREWALL
options IPFIREWALL_VERBOSE # journal
options IPFIREWALL_VERBOSE_LIMIT=100 # Limit journal
options IPFIREWALL_DEFAULT_TO_ACCEPT # default close all
options IPDIVERT # acces divert to nat
Потом включается демон natd, firewall в /etc/rc.conf
firewall_enable="YES"
#firewall_type="OPEN"
firewall_script="/etc/ipfw.conf"
natd_enable="YES"
natd_interface="re1" #Nat интерфейс на re1(на нем интернет)
nats_flags="-u -m"
smbd_enable="YES"
nmbd_enable="YES"
named_enable="YES" # Сервер DNS

Конфигурация IPFW
Создаем файл /usr/firewall.conf и для пропуска все пакеты, через него вписываем:
add divert natd all from any to any via ed0 add
allow all from any to any
Ставим права на файл: chmod 600 /usr/local/etc/firewall.conf
Также можно задать:
firewall_type="open" - разрешает все входящие и исходящие пакеты
firewall_type="client" - правила для защиты только данной машины
firewall_type=simple" - правила для защиты всей сети
Настройка скрипта ipfw:
#!/bin/sh

/sbin/ipfw -f flush
/sbin/ipfw add 00050 check-state
/sbin/ipfw add 00100 divert 8668 ip4 from any to any via re1
/sbin/ipfw add 00200 allow ip from any to any via lo0
/sbin/ipfw add 00300 deny ip from any to 127.0.0.0/8
/sbin/ipfw add 00400 deny ip from 127.0.0.0/8 to any
# deny local lan on re1(Inet)
/sbin/ipfw add 00550 deny ip from any to 10.0.0.0/8 in via re1
/sbin/ipfw add 00560 deny ip from any to 172.16.0.0/12 in via re1
/sbin/ipfw add 00580 deny ip from any to 0.0.0.0/8 in via re1
# deny autoconfigure local on re1
/sbin/ipfw add 00590 deny ip from any to 169.254.0.0/16 in via re1
# deny multicastovye rassylki
/sbin/ipfw add 00600 deny ip from any to 224.0.0.0/4 in via re1
# deny fragmenrirovanye icmp
/sbin/ipfw add 00610 deny icmp from any to any frag
# deny icmp/32 on re1
/sbin/ipfw add 00620 deny log icmp from any to 255.255.255.255 in via re1
/sbin/ipfw add 00630 deny log icmp from any to 255.255.255.255 out via re1
# allow ssh from Net on Lan
/sbin/ipfw add 00650 allow ip from any to any ssh via re1

# allow traffic with Inet to re1 wich established
/sbin/ipfw add 00670 allow tcp from any to 78.107.117.210/32 via re1 established
#
# allow vnc on 192.168.7.24
#/sbin/ipfw add 00660 allow ip from any to any 1988 via re1

# deny icmp all from Inet. Allow icmp ni Inet from local
/sbin/ipfw add 00680 allow icmp from any to any out icmptype 8
/sbin/ipfw add 00690 allow icmp from any to any in icmptype 0
/sbin/ipfw add 00700 deny icmp from any to any via re1
# deny tcp and udp on re0 for 192.168.7.44
/sbin/ipfw add 00750 deny tcp from 192.168.7.44 to any via re0
/sbin/ipfw add 00760 deny udp from 192.168.7.44 to any via re0
# deny tcp 139 and 445 ports deny fron Inet
/sbin/ipfw add 00800 deny tcp from any to any 445 via re1
/sbin/ipfw add 00810 deny tcp from any to any 139 via re1
#deny all on re1
/sbin/ipfw add 00820 deny tcp from any to 78.107.117.210 via re1
# allow dns
/sbin/ipfw add 00840 allow tcp from 78.107.117.210 to 195.14.50.1 53 via re1
/sbin/ipfw add 00850 allow udp from 78.107.117.210 to 195.14.50.1 53 via re1
# deny all 53
/sbin/ipfw add 00860 deny tcp from any to any 53 via re1
/sbin/ipfw add 00870 deny udp from any to any 53 via re1
# allow tcp packet po ustanovlennym soedineniyam
/sbin/ipfw add 00900 allow tcp from any to any established

/sbin/ipfw add 01000 allow ip from any to any
/sbin/ipfw add 65534 deny ip from any to any

Дополнитльная информация
________________________
Установка DNS
cd /usr/ports/dns/bind9
make install
Переходим в cd /etc/namedb/named.conf для конфигурации сервера:
listen-on { any; }; #для прослушки всех, можно: listen-on { 192.168.7.0/24; }
forwarders {
195.14.50.1;
195.14.50.21;
}; # указывая ip провайдера
_______________________
Установка SAMBA
cd /usr/ports/net/samba3
Для конфигурации переходим в /usr/local/etc (в linux: /etc/samba)
ee smb.conf
В файле вносим:
workgroup = west.lan
server string = westser
hosts allow = 192.168.7. # можно ограничить по ip hosts allow = 192.168.7.24, запрет hosts deny 192.168.7.21
interfaces = re0 # Используем samba только на внутреннем интерфейсе
bind interfaces only = Yes # Используем samba только на внутреннем интерфейсе
max log size = 100
security = share #Пользователи не должны вводить логин и пасс при подключенпие к серверу

#====== Share Definitions ======
[FILESERVER]
comment = FILESERVER
path = /home/vital/files
browseable = yes #Если поставить browseable = no, то до каталога можно будет достучаться набрав полный адрес. В общих ресурсах его не будет видно.
writable = yes
guest ok = yes
share mode = yes
Добавляем в rc.conf демон для samba:
smbd_enable="YES"
nmbd_enable="YES
Запускаем демон
/usr/local/etc/rc.d]# ./samba start

cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd Переносит пользователей ОС в пользов-й smb
Или можно синхронизировать через webmin
После синхронизация, нужно вновь задать пароли.

Пример работы пользователей с папкой ftp:
_________________
[FTP]
writeable = yes запись в папку
read list = west,@west пользователь и группа только на чтение
valid users = vital,west корректные пользователи
admin users = vital, root пользователи администрирования папки
path = /local/ftp/ путь к паки
write list = vital,@wheel,@vital пользователь и группа на чтение/запись
_________________
Не видимая директория для работы пользователя vital:
_________________
[vital]
comment = files for vital
path = /local/vital/
writeable = yes
valid users = vital
admin users = vital
write list = vital, @wheel, @vital
browseable = No
_________________
Можно сопоставлять нескольких пользователей windows с одним пользователем Nix, что позволит дать группам win те же права, что и у конкретного пользователя nix'ов.
Создаётся: smbusers.map и внего прописываются данные.

За комментированный log file = ... , то логи будут указанны в одном файле: log.smb
max log size = 50 размер журнала в 50 кбайт

public = yes или guest ok = yes разрешения гостевого входа.

/usr/local/etc/rc.d/samba restart перезагрузка samba в freebsd
smbd -V версия самбы
winbindd -V версия winbind

winbind интеграция samba в домены windows. Сервис синхронизирует список пользователей и групп PDC с машиной Samba.
testparm - проверяет параметры файла smb.conf
______________________
Установка задания на выполнение через CRON:
Необходимо было синхронизировать время.
Создал скрипт /clock.sh:
#!/bin/sh
ntpdate 194.186.254.22 195.2.64.5
Сделал его выполняемым:
chmod +x clean
Зарегистрировался в системе под своим пользователем и создал задание, через:
crontab -e
Открылся vi редактор и в нем внес
#sync time
30 23 * * * /clock.sh
Желательно создать еще 3-ю пустую строку.
Сохранил, ESC+ZZ
Т.е. каждый день в 23:30 будет выполняться скрипт clock.sh
Данное задание находится: /var/cron/tab в файле по имени пользователя.
crontab -l вывод запланированных заданий.
В /var/log/cron лог выполнения задания cron'а
_____________________
Проброс порта из вне во внутреннюю сеть:

Самый простой способ и 100% рабочий, установить rinetd из портов:

Код:
# cd /usr/ports/net/rinetd && make install clean
# echo ‘rinetd_enable=”YES”‘ >> /etc/rc.conf
# ee /usr/local/etc/rinetd.conf

Код:
1.2.3.4 10001 192.168.1.1 10001

1.2.3.4 - Ваш внешний IP-адрес.
10001 - Ваш внешний порт.
192.168.1.1 - компьютер внутри локальной сети.
10001 - порт компьютера внутри локальной сети.

Код:
# /usr/local/etc/rc.d/rinetd start

Проверяем запущенный демон: sockstat | grep rinetd

______________________
Администрирование через WEBMIN

Webmin - это программный комплекс, который позволяет администрировать unix-подобную операционную систему, не работая с командной строке и не запоминая ни одной команды. Все управление сервером происходит через веб-интерфейс. Используя любой браузер, администратор сервера может заводить новые аккаунты, почтовые ящики, изменять настройки веб-сервера Apache, исправлять и дополнять записи DNS, настраивать сайты, почтовые ящики и т.д.

Webmin состоит из простого веб-сервера и небольшого количества скриптов, которые собственно и осуществляют связь между командами администратора через веб-интерфейс и их исполнением на уровне операционной системы и прикладных программ. Webmin написан полностью на языке Perl и не использует никаких дополнительных нестандартных модулей. Простота, легкость и быстрота выполнения команд - одно из самых больших преимуществ данной панели управления.

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

Работать с Webmin достаточно просто - нужно запустить браузер, набирать http://имя_домена.com:10000/ и попасть на страницу администрирования.

#whereis webmin
#cd /usr/ports/sysutils/webmin
#make install

#/usr/local/lib/webmin/setup.sh - скрипт запуск настройки

в /etc/rc.conf добавить webmin_enable="YES"
default port:10000

____________________

SAMS (SQUID Account Management System)

SAMS представляет собой программное средство для администрирования доступа пользователей к прокси-серверу SQUID.
SAMS это не биллиноговая система!

Возможности системы:

  • Администрирование системы через web интерфейс
  • Ограничение объема трафика пользователей на месяц
  • Автоматическое отключение пользователей, превысивших лимит
  • Блокировка доступа пользователей к запрещенным ресурсам интернет
  • Настройка доступа пользователей через механизм шаблонов
  • Разбиение пользователей на группы для удобства администрирования системы
  • Ведение статистики посещенных пользователями ресурсов интернет
  • Формирование отчетов по трафику пользователей за любой отрезок времени
  • Поддержка видов авторизации SQUID: ntlm, ncsa, ip
  • Поддержка использования редиректоров SQUID: rejik, squidGuard
  • Ограничение скорости закачки для групп пользователей
  • Посылку сообщений администратору при отключении пользователей при превышении трафика
  • Для хранения данных используется СУБД MySQL

четверг, 21 августа 2008 г.

Программы, которыми я пользуюсь

./misc/mc-4.6.1.6 - Midnight commander, файловый менеджер.
./www/lynx-2.8.7d7 - браузер из под командного интерпретатора.
./ports-mgmt/portsnap - программа по обновлению портов.
[ /etc/portsnap.conf - конфигурационный файл.
portsnap fetch - загружает обновление.
portsnap extract - устанавливает дерево портов
portsnap fetch update - обновление
]
./ports-mgmt/portupgrade - программа по обновлению портов в системе
[pkg_add -r portupgrade - находит на серверах и устанавливает автоматом
portupgrade -arR - обновит все устаревшие порты
]
Webmin - программа для администрирование *nix, через web-интерфейс.
iftop - сниффер
rdesktop 85.235.185.90 -u admin-rmp -p 11111 -g 1024x768 -a 8 Удаленный рабочий стол с введенным user и pass, расширением 1024 на 768 и 8 бит цветности.

понедельник, 18 августа 2008 г.

Сетевые настройки Nix'ов

ifconfig_lnc0="inet 192.168.7.77 netmask 255.255.255.0" - установка ip и маски для сетевой карты lnc0, после рестарта приходится заново установки вносить, поэтому необходимо настроить в etc/rc.conf , т.е. внести строчку ifconfig_lnc0="inet 192.168.7.77 netmask 255.255.255.0"
DNS client настраивается в - /etc/resolv.conf
Добавление роутер по умолчанию:
route add default 192.168.1.100 потом проверить путь по умолчанию с помощью команды netstat -rn (
route delete default - удаление)
hostname - показывает имя хоста
hostname pc.domen.lan - устанавливает доменное имя

Все эти параметры можно изменить в редактированием файла: /etc/rc.conf
Так же можно настроить через sysinstall
ifconfig lnc0 192.168.7.77 netmask 255.255.255.0 alias добавление 2-го ip адреса.
Все про ping
Настройка ssh соеденения или Openssh

Для соеденения по ssh c windows можно использовать: PuTTY
________________________________
SSH:
B /etc/rc.conf добавить sshd_enable="YES", для запуска демона sshd нужно зарестартить ПК или
/etc/rc.d/sshd start
Для ограничение пользователей для подключение по ssh в /etc/ssh/shhd_config
добавить
AllowUsers admin@192.168.1.2 vital - добавляет 2-х пользователей, а для admin с машины 192.168.1.2
Для изменения порта:
Port 1984 - устанавливает порт соединения 1984(не забыть его потом расшарить на файрволе:)
После внесения изменений нужно перезагрузить:
/etc/rc.d/sshd reload
(freebsd)
/etc/init.d/sshd reload (linux)

Для подключения к ssh серверу по др-у порту:
ssh admin@192.168.7.1 -p 9999 Подключение по порту 9999 .
Что бы узнать версию ssh, нужно:
ssh 192.168.7.1 22
Будет выведена информация и версия ssh
_________________________________
sockstat выводит все активные соединения к сетевому интерфейсу
tcpdump — утилита, позволяющая захватывать и анализировать сетевой трафик, проходящий через компьютер, на котором запущена данная программа.

четверг, 7 августа 2008 г.

Структура каталогов:

/ Корневой каталог файловой системы.
/bin/ Основные утилиты, необходимые для работы как в однопользовательском, так и в многопользовательском режимах.
/boot/ Программы и конфигурационные файлы, необходимые для нормальной загрузки операционной системы.
/boot/defaults/ Конфигурационные файлы с настройками по умолчанию, используемые в процессе загрузки операционной системы.
/dev/ Файлы устройств.
/etc/ Основные конфигурационные файлы системы и скрипты.
/etc/defaults/ Основные конфигурационные файлы системы с настройками по умолчанию.
/etc/mail/ Конфигурационные файлы для систем обработки почты.
/etc/namedb/ Конфигурационные файлы для утилиты named.
/etc/periodic/ Файлы сценариев, выполняемые ежедневно, еженедельно и ежемесячно.
/etc/ppp/ Конфигурационные файлы для утилиты ppp.
/mnt/ Пустой каталог, часто используемый системными администраторами как временная точка монтирования.
/proc/ Виртуальная файловая система, отображающая текущие процессы.
/root/ Домашний каталог пользователя root.
/sbin/ Системные утилиты и утилиты администрирования, необходимые для работы как в однопользовательском, так и в многопользовательском режимах.
/stand/ Программы, необходимые для работы в автономном режиме (например, при установке системы).
/tmp/ Временный каталог (часто монтируется как mfs; обычно содержимое этого каталога теряется во время перезагрузки системы).
/usr/ Большинство пользовательских утилит и приложений.
/usr/bin/ Пользовательские утилиты и приложения общего назначения.
/usr/include/ Стандартные заголовочные файлы для языка C.
/usr/lib/ Файлы стандартных библиотек.
/usr/libdata/ Файлы данных для различных утилит.
/usr/libexec/ Системные даемоны и утилиты (выполняемые другими программами).
/usr/local/ Локальные пользовательские приложения, библиотеки, и т.д. Также используется по умолчанию коллекцией портов. Внутри /usr/local иерархия каталогов должна следовать hier(7) для /usr. Исключение составляют каталог man, который расположен непосредственно в /usr/local, а не в /usr/local/share, и документация портов, которая расположена в share/doc/port.
/usr/obj/ Архитектурно-зависимые файлы и каталоги, образующиеся в процессе сборки системы из исходных текстов в /usr/src.
/usr/ports/ Коллекция портов FreeBSD (опционально).
/usr/sbin/ Системные утилиты и утилиты администрирования (исполняемые пользователем).
/usr/share/ Архитектурно-независимые файлы.
/usr/src/ Исходные тексты BSD и/или программ.
/usr/X11R6/ Утилиты, приложения и библиотеки X11R6 (X Window System; необязательно).
/var/ Файлы журналов общего назначения, временные, перемещаемые файлы и файлы очередей.
/var/log/ Различные файлы системных журналов.
/var/mail/ Почтовые ящики пользователей.
/var/spool/ Файлы очередей печати, почты, и пр.
/var/tmp/ Временные файлы, которые необходимо сохранять между перезагрузками операционной системы.
/var/yp/ Карты (maps) NIS.

Руководство FreeBSD:

рAlt-F1, Alt-F2, до Alt-F8 чтобы переключаться между различными виртуальными консолями в FreeBSD.
Число и параметры виртуальных консолей задаются в файле /etc/ttys
Ctrl+Alt+F1 - переход в командную консоль.
Alt+F7 переход в X
Ctrl+O - свернуть/развернуть MC
С помощью клавишь Esc+Enter происходит выход из текстовых приложений.
_______________________________
Монтирование жесткого диска
Установил жесткий диск в ПК. Зашел в систему freebsd под root. Запустил sysinstall, custom, partition, выбрал новый диск ad1, создал новый слайс на нём и сохранил изменения W(write changes), вышел. Для создания разделов зашел в label и создал раздел /home(ad1s1d),
и сохранил изменения W(write changes). Вышел из sysinstall и после перезагрузке freeBSD с помощью fdisk -s /dev/ad1s1d проверил созданный слайс. Утилитой newfs /dev/ad1s1d создал на /dev/ad1s1d файловую систему. Так же можно было создать файловую систему в label->T(newfs Toogle) Смонтировал новый диск:
mount
/dev/ad1s1d /home/newdisk. Проверил на ошибки файловыую систему на данном разделе fsch /dev/ad1s1d. Потом убедился, что диск смонтирован df, где в таблице появилось смонтированный раздел.

Можно более удобно работать с монтированными устройствами, через файл /etc/fstab добавив туда устройство(можно через оператор ее), когда в файле все точки монтирования заданы, то можно легко подключить все устройства: mount -a.
Перед тем, как добавить строчку в
/etc/fstab, я создал папку /home/newdisk и в столбце файла fstab, прописал /home/newdisk. Переходы между столбцами осуществлял с помощью tab.
После перезагрузки устройство
/dev/ad1s1d автоматически монтируется к основной файловой системе.

Размонтировал umount
/dev/ad1s1d, таже можно umount /home/newdisk. Главное в данный момент не находиться на данном диске - newdisk.

Для монтирования CD-rom, я посмотрел
/etc/fstab названия точки монтирования сдрома (/cdrom) и ввел mount /cdrom. Кстати, значения в столбце options - noauto, обозначает, что автоматическая монтирование не будет происходить с загрузкой ОС.
Перед изъятия диска из сд-рома, необходимо его размонтировать u
mount /cdrom.
_______________________________
Права доступа к файлам и папкам:
chown user file.txt - изменяет хозяина файла
chown user /home/vital - теперь только user владелец папки vital
chown -R user /home/vital - (-R) позволяет выполнить команду для текущего каталога, всех файлов в нем и всех подкаталогов.
Режимы прав доступа для chmod(check mode):
u-владелец, g-группа, o-остальные, а-все | w-запись, х-выполнение, r-чтение
go+w добавляет право на запись для группы и остальных пользователей.
o-r удаляет право на чтение у остальных пользователей.
ugo=rw или a=rw установить всем права на чтение и запись
chmod g+w file.txt добавляет права чтения для группы.
chmod -R 777 vital добавление всех прав на папку vital

_______________________________
Сборка ядра FreeBSD:
Для редактирования ядра желательно обращаться файлу NOTES, что бы понимать, что именно редактировать, а так же держать окно с выводом dmesg

1. Скопировал файл GENERIC, который находится в /usr/src/sys/i386/conf на сpGeneric и отредактировал с новой конфигурацией. А так же изменил строчку: ident=cpGeneric

2. Пеерейти в /usr/src и набрать .... make buildkernel KERNCONF=сpGeneric

3. make installkernel KERNCONF=сpGeneric

4. Рестатр ПК и все гут ))))

Еще момент, теперь ядро сpGeneric
Если загрузка нового ядра не получилась (такое тоже возможно), можно загрузится со старым ядром. Для этого, в начале загрузки на подсказку Boot: надо сказать kernel.old(старое ядро находится /boot/kernel.old). Грамотное сконфигурированное ядро, что бы не было перезатерто, лучше всего переименовать /boot/kernel.vital
Естественно, после этого надо снова вернуться к редактированию конфигурации и повторить все последующие пункты.

http://www.freebsd.org/doc/ru_RU.KOI8-R/books/
handbook/kernelconfig-building.html
Что бы добавить новое файл устройства, нужно перейти в /dev и запустить:
./MAKEDEV
__________________________________
Добавления нового пользователя.
adduser - добавляет пользователя.
rmuser - удаление пользователя
/etc/master.passwd - просмотр файла всех пользователей.
/etc/group - файл групп
Так же можно добавить пользователя или группу через sysinstall(
-> Configure -> User management -> User.)
__________________________________
Установка bash по умолчанию пользователю:
сhsh vital - change shell vital. Откроется файл(в vi) с информацией о пользователе и нужно изменит поле на: shell: /usr/local/bin/bash
в командной строке нажать на :w для записи и :q для выхода.
или можно:
chsh -s /usr/local/bin/bash vital
____________________________
Конфигурация системы на загрузки BSD:
Для управления загрузки ОС, нужно в загрузчеке выбрать: 6. Escape to loader promt
В командной строке команды:
boot -s - загрузка однопользовательского режима.
boot kernel.old - загрузка предыдущего ядра.
boot -C - для загрузки с CD-ROM
dmesg | more - выводит все сообщения при загрузки ОС
По умолчанию в однопользовательском режими загрузка происходит под пользователем root без спрашивание пароля. Что бы исправить данную дыру, нужно в файле /etc/ttys
исправить сточку на:
console none unknown insecure
Что бы отключить свойства перезагрузки сервера нажатием ctrl+alt+del:
пересобрать ядро включив в его конфигурацию
options SC_DISABLE_REBOOT
/etc/defaults/rc.conf - файл конфигурации по-умолчанию запуска сценариев при старте ОС.
/etc/rc.conf - файл отменяющие настройки по умолчанию, так же содержит переменные отвечающие за конфигурацию TCP/IP.
/usr/local - все что уставнавливает админ, размещается в этом каталоге.
/usr/local/etc - локальный эквивалент каталога /etc. И именно в нем размещаются конфигурационные файлы устанавливаемых программ. Хранятся начальные сценария.
/usr/local/etc/rc.d - процесс init обращается в этот каталог, после того как запускает все сценария /etc/re.* Все выполняемые файла имеют расширения *.sh(samba.sh, apache.sh...). Сценария из этого каталога можно запустить и в ручную:
/usr/local/etc/rc.d apache.sh start или stop
Демон inetd - суперсервер, запускает процессы сервера при поступления запросов.
/etc/inetd.conf - конфигурация демона.
ps -waux | grep inetd и kill -HUP 110 перезапуск inetd
/var/log - директория логов ОС(/var/log/messages - основной log-файл системы)
/etc/motd - файл с инфой, который выводится после проверки логина.
/etc/sheels - файл, где прописанны командные интерпритаторы.
__________________________
Установка приложений:
Можно устанавливать из пакетов, с помощью sysinstall или:
через программы - pkg_add, pkg_delete и pkg_info.
Программы работают так:

# pkg_add <имя_пакета>
— устанавливает пакет.
pkg_add -r <имя нужной проги> - находит на серверах и устанавливается автоматом
# pkg_delete <имя_пакета>
— удаляет установленный пакет из системы.
# pkg_info -v <имя_пакета>
— выводит информацию об установленном пакете.
# pkg_add -nv - холостая инсталляция
# pkg_version -v - сравнивает версии софта
# pkg_version -v | grep "need" - выводит порты, которые нужно обновить

Можно из портов, находящиеся в /usr/ports Нужно перейти в нужный каталог и запустить:
make - распаковывает дистрибутивный файл и компилирует его.
make install - инсталлирует.
make clean - удаляет временные файлы.
Лучше сразу: make && make install && make clean
Если при инсталляции ошибка, то вначале почистить make_install, а потом заново запустить make install
Из исходников:
Нужно скачать архив (вероятно, им будет тарболл, т.е. файлы типа *.tar, *.tar.gz или *.tar.bz2) и распаковать его (для .tar: tar xvf xxx.tar; для .tar.gz: tar xzvf xxx.tar.gz; для .tar.bz2: tar xjvf xxx.tar.bz2). После этого установка вкратце выполняется так:
$ ./configure
$ make
# make install

Что установлено в системе можно увидеть в каталоге: /var/db/pkg
___________________________
Мониторинг производительности:
top - отображает все системные утилиты(при нажатие на i отображаются все активные процессы, u - вводится пользователь чьи процессы нужно показать, k - убивает процессы по номеру PID).
ps - отображает процессы на момент её запуска
ps -waux - выводит в полном виде все процессы(w-в широком формате, u-выводит мена пользователей, а-отображаются все процессы)
ps -U vital - выводит процессы пользователя vital.
ps - ax | grep httpd - сортирует по процессам httpd
kill 12553 - убивает процесс под номер 12553
kill -TERM 12553 - коректно завершает процесс 12553
kill -KILL 12553 - останавливает любой процесс.
renice -10 14442 - понижает приоритет до +10. Приоритет процесса бывает от +20(самый низкий) до -20 (самый высокий).
renice --10 14442 - увеличивает до -10.
nice 10 Is - устанавливает процессу Is начальный приоретет запуска +10.
cron - планировщик задач.
at - одноразовый запуск задачи
_________________________
Изменения текстового приветствия при подключение по ssh происходит в файле /etc/motd
_________________________




FreeBSD links:

http://www.freebsd.org/doc/ru_RU.KOI8-R/books/faq/index.html - Часто задаваемые вопросы по FreeBSD
http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/index.html - Руководство по FreeBSD
http://www.citforum.ru/operating_systems/freebsd/handbook/index.shtml - по freeBSD
http://www.nixp.ru/articles/freebsd_first_steps_for_beginners - Советы по первичной настройке FreeBSD для новичков
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.3-release/- софт
http://sysadmins.ru/ | http://opennet.ru/ | http://www.lissyara.su - порталы для сис. админа

среда, 6 августа 2008 г.

Команды *NIX bash

grep login /etc/passwd; login входа в ОС - узнаем какой командный интерпретатор в данный момент используется.
tail -f /var/log/messages - показывает добавляемые логи в message on-line
tail -10 /var/log/messages - выводит последние 10 строк лога в message
init 1 однопользовательский режим
init 5 многопользовательский режим
uname -a данные о ОС
clear - очистка экрана
id - информация о группе в которой находится пользователь, если не в группе wheel (gid=0), то команду su нельзя запустить.
adduser - добавление пользователя под root
Для добавления пользователя в группу wheel, нужно:
[
ee /etc/group - открыть на редактирование файл групп и добавить своего пользователя:
wheel:*:0:root,vital
]
man - информация по командам
Редактор текстовый vi:
[
После открытия, редактор находится в командном режими.
a, i или o - переключает в режим ввода текста.
D - удаляет текст от позиции курсора до конца строки.
dd - удаляет всю текующую строку.
х(Х) - удаляет символ.
/ - поиск в тексте
ZZ - сохраняет изменения в текущем файле и выходит из него.
в командной строке нажать на :w для записи и :q для выхода.
]
ls - вывод содержимого каталога
ls > info - создает текстовый файл info, содержащий листинг текущего каталога.
ls | more - выводит листинг поэкрано
ls -f - выводит информацию о типе файлов в каталоге
ls -a - выводит скрытые файлы (с точкой впереди)
ls -l - выводит подробную инфу по файлам и каталогам.
cd - делает текущим начальный каталог пользователя
cd /usr/local - перемещает в каталог bin
cd .. - на уровень вверх
pwd - выводит имя текущего каталога
ср file0 file1 скопирует существующей файл file0 в новый file1
cp file1 /home/login скопирует файл в директорию /home/login
сp file1 file2 /home скопирует файл file1 и file2 в директорию /home
сp -R dir1 /dir2 скопирует все, что находится в каталоге dir1 в каталог dir
-i интерактивный режим. Запрашивает подтверждения на перезапись.
mv - перемещение и переименование файлов и каталогов
mv file1 file2 переименовывает file1 в file2
mv /dir /dir2 переименовывает каталог dir1 в dir2/ Если dir2 существует и не является пустым, то утилита выдаст ошибку
mv file1 /dir2 перемещает file1 в каталог dir2
rm - удаления файлов и каталогов(-R)
rm file1 удаляет file1
rm file1 file2 удаляет file1 и file2
rm -R dir1 удаляет полностью каталог dir1
-f удаляет не задавая вопросы, -i запрашивает подтверждение на удаление каждого фала, -P три раза перезаписывает содержимое файла, да бы не восстановить его, -W пытается восстановить файл, удаленной командой rm
rmdir - удаляет каталоги, с -p удаляет с подкаталогами
touch - создание пустого файла или модификации существующего файла
mkdir VIT - создает каталог VIT
echo "текст" > filename создает файли добавляет туда текст(одну строку)
cat > filename (Enter) и ввод текста
ln /home/user/file.txt ./file.txt - создается жесткая ссылка file.txt в текущем каталоге(нельзя использовать как ссылки на каталоги и нельзя ссылаться в не файловой системы).
ln -s /home/user/file.txt ./file.txt - создается мягкая(как ярлык в windows) ссылка file.txt в текущем каталоге.
-i интерактивный режим(запрос подтверждения), -v информационный режим(выводятся сообщения о каждой операции), -f выполняет действия без запроса на подтверждения.
Символы заместители:
?
- совпадает с любым одиночном символом.
* - совпадает с любой последовательностью символов.
[] - совпадает с диапозовном символов, например, file[1-3] совпадает с file1, file2, file3. Так же возможно с буквенным диапазоном file[a-c].
! - логический оператор НЕ, например, file[!1234] совпадает с именами всех файлов, которые не начинаются с file1 - file4/
\ - escape-символ. Например, rm -i \* удаляет файл *, а не все файлы в каталоге.
Поиск файлов:
find . -name "vital" ищет в текущем каталоге(.) файл vital(- name обозначает поиск по имени файла)
find ./vital -name "vit*" ищет в каталоге /vital (/home/vital) файлы начинающиеся с имени vit
find -x ./vital команда выведет список всех файлов в домашнем каталоге пользователя user(vital) и во всех подкаталогах, кроме каталогов являющихся точками монтирования других устройств (/home/user/mnt/floppy, /home/user/mnt/cdrom, /home/user/mnt/nfs).
Более информации: http://system-administrators.info/?p=1125
locate - просматривает базу данных, содержащую список файлов, имеющихся в системе.
Команды обработки текстовых файлов:
wc
- подсчет строк, слов и символов в текстовом файле, например, wc vit
more и less - просмотр текстовых файлов
grep info textfile поиск в текстовом файле строк info и вывод на экран, -i поиск без учета регистра, -n выводить номер строки, -v выводить строки не включающий указанный шаблон
tr "z-z" "A-Z" поиск и замена маленьких букв на большие
tr "z-z" "A-Z" <> file2 заменяемые данные из file1 направляет и записывает в file2
Работа с жестким диском:
man heir
- полное описание файловой структуры.
df - disk free, просмотр свободного пространство в разделах(слайсах).
du - disk usage, выводит размер всех каталогов.
fdisk - показывает физическое разбиение диска
fdisk -s краткая информация о таблице разделах
fdisk -s /dev/ad1 - краткая информация о таблице разделов диска ad1
fdisk -i /dev/ad1 - ручное создания слайсов на диске ad1(-I - создаст на диске первый и единственный слайс)
disklabel (bsdlabel) - создания разделов на созданном слайсе.
Можно также разбить диски запустив утилиту в / командой: sysinstall, при создания слайса и разделов необходимо в конце нажать W(write), при необходимости перезагрузить ОС.
newfs /dev/ad1s1d формирует файловую систему в разделе /dev/ad1s1d
Перед монтированием нового диска, возможно понадобится добавить в ручную запись в текстовый файл /etc/fstab
fsck
- проверка и восстановление файловой системы
mount /dev/ad1s1d /home/newdisk монтирование диска
/dev/ad1s1d в раздел /home/newdisk
mount_msdos /dev/ad1s1 /mnt монтирование msdos системы
option ext3fs mount_ext3fs
/dev/ad1s1 /mnt монтирование ext3(linux) системы.
mount_cd9660 /dev/acd0c /cdrom - монтирование cd-rom
mount /dev/fd
0 /floppy флоппи
mount -a -t monfs - монтирования всех файловых систем, перечисленных в файле /etc/fstab, кроме NFS
umount /dev/ad1s1d - размонтирования /dev/ad1s1d
who - выдает всех пользователей в системе в данный момент
lastlogin - когда пользователи заходили в последний раз в систему
passwd - изменения пароля пользователя
___________________________________
Сетевые команды:

netstat -rn выводит таблицу маршрутизации
traceroute to www.ru трасировка www.ru
ifconfig - аналог ipconfig в windows
ifconfig lnc0 192.168.7.88 netmask 255.255.255.0- изменения ip и маски для интерфейса lnc0
Добавление роутер по умолчанию:
route add default 192.168.1.100 потом проверить путь по умолчанию с помощью команды netstat -rn (
route delete default - удаление)
hostname - показывает имя хоста
hostname pc.domen.lan - устанавливает доменное имя
sockstat - выводит все активные соединения к сетевому интерфейсу
___________________________________
whereis webmin
выводит путь порта webmin