Журнал лабораторных работ

Содержание

Журнал

Пятница (04/04/08)

/dev/ttyp0
18:12:25
#sockstat -4l
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
root     sendmail   977   4  tcp4   *:25                  *:*
root     sendmail   977   5  tcp4   *:587                 *:*
root     sshd       972   4  tcp4   *:22                  *:*
root     xinetd     852   0  tcp4   *:19                  *:*
root     xinetd     852   6  tcp4   *:7                   *:*
bind     named      797   20 udp4   192.168.16.22:53      *:*
bind     named      797   21 tcp4   192.168.16.22:53      *:*
bind     named      797   22 udp4   127.0.0.1:53          *:*
bind     named      797   23 tcp4   127.0.0.1:53          *:*
bind     named      797   24 udp4   *:54441               *:*
bind     named      797   26 tcp4   127.0.0.1:953         *:*
root     syslogd    736   9  udp4   *:514                 *:*
18:12:56
#sockstat
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
root     gdm-binary 1163  7  udp6   *:177                 *:*
root     sshd       1067  3  tcp4   192.168.16.22:22      192.168.16.204:3604
smmsp    sendmail   981   3  dgram  -> /var/run/log
root     sendmail   977   3  dgram  -> /var/run/logpriv
root     sendmail   977   4  tcp4   *:25                  *:*
root     sendmail   977   5  tcp4   *:587                 *:*
root     sshd       972   3  tcp6   *:22                  *:*
root     sshd       972   4  tcp4   *:22                  *:*
root     gdm-binary 940   6  stream /var/run/gdm_socket
...
bind     named      797   25 udp6   *:54442               *:*
bind     named      797   26 tcp4   127.0.0.1:953         *:*
bind     named      797   27 tcp6   ::1:953               *:*
root     syslogd    736   4  dgram  /var/run/log
root     syslogd    736   5  dgram  /var/run/logpriv
root     syslogd    736   6  dgram  /var/run/log
root     syslogd    736   7  dgram  /var/named/var/run/log
root     syslogd    736   8  udp6   *:514                 *:*
root     syslogd    736   9  udp4   *:514                 *:*
root     devd       670   4  stream /var/run/devd.pipe
18:13:23
#sockstat -4
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
root     sshd       1067  3  tcp4   192.168.16.22:22      192.168.16.204:3604
root     sendmail   977   4  tcp4   *:25                  *:*
root     sendmail   977   5  tcp4   *:587                 *:*
root     sshd       972   4  tcp4   *:22                  *:*
root     xinetd     852   0  tcp4   *:19                  *:*
root     xinetd     852   6  tcp4   *:7                   *:*
bind     named      797   20 udp4   192.168.16.22:53      *:*
bind     named      797   21 tcp4   192.168.16.22:53      *:*
bind     named      797   22 udp4   127.0.0.1:53          *:*
bind     named      797   23 tcp4   127.0.0.1:53          *:*
bind     named      797   24 udp4   *:54441               *:*
bind     named      797   26 tcp4   127.0.0.1:953         *:*
root     syslogd    736   9  udp4   *:514                 *:*
18:13:43
#locate xinetd.conf

18:13:57
#locate xinetd
/usr/local/share/vim/vim71/ftplugin/xinetd.vim
/usr/local/share/vim/vim71/indent/xinetd.vim
/usr/local/share/vim/vim71/syntax/xinetd.vim
/usr/ports/security/xinetd
/usr/ports/security/xinetd/Makefile
/usr/ports/security/xinetd/distinfo
/usr/ports/security/xinetd/files
/usr/ports/security/xinetd/files/patch-ab
/usr/ports/security/xinetd/files/patch-xinetd::xconfig.h
/usr/ports/security/xinetd/files/xinetd.in
/usr/ports/security/xinetd/pkg-descr
/usr/ports/security/xinetd/pkg-plist
/usr/ports/sysutils/webmin/files/patch-xinetd::config-freebsd
18:14:59
#ps aux | grep qp
root   1251  0,0  0,1  1608  1060  p1  S+   15:15     0:00,01 grep qp
18:15:08
#vim /etc/inetd.conf
--- /tmp/l3-saved-1123.29116.8499	2008-04-04 15:15:16.000000000 +0000
+++ /etc/inetd.conf	2008-04-04 15:15:23.000000000 +0000
@@ -20,7 +20,7 @@
 #login	stream	tcp6	nowait	root	/usr/libexec/rlogind	rlogind
 #finger	stream	tcp	nowait/3/10 nobody /usr/libexec/fingerd	fingerd -s
 #finger	stream	tcp6	nowait/3/10 nobody /usr/libexec/fingerd	fingerd -s
-pop3	stream	tcp	nowait	root	/usr/local/libexec/qpopper	qpopper -s
+#pop3	stream	tcp	nowait	root	/usr/local/libexec/qpopper	qpopper -s
 #
 # run comsat as root to be able to print partial mailbox contents w/ biff,
 # or use the safer tty:tty to just print that new mail has been received.
18:15:23
#ps aux | grep inetd
root    852  0,0  0,1  1668  1376  ??  Is   15:12     0:00,00 /usr/local/sbin/xinetd -f /usr/local/etc/xinetd.conf
18:15:28
#pkg_info -Lx qpopper
Information for qpopper-4.0.9_2:
Files:
/usr/local/man/man8/qpopper.8.gz
/usr/local/man/man8/qpopauth.8.gz
/usr/local/bin/qpopauth
/usr/local/libexec/qpopper
/usr/local/etc/qpopper/popusers.sample
/usr/local/etc/qpopper.config.sample
18:15:54
#man qpopper
18:16:22
#man qpopper
18:16:39
#Pattern not found (press RETURN)

18:16:40
#vim /usr/local/etc/qpopper
18:16:40
#vim /usr/local/etc/qpopper/popusers
18:16:40
#vim /usr/local/etc/qpopper.config.sample
18:17:13
#~

18:17:14
#pkg_add -r popa3d
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.3-release/Latest/popa3d.tbz... Done.
===========================================================================
1. Edit your /etc/inetd.conf to use popa3d. The line should look like this:
pop3    stream  tcp     nowait  root    /usr/local/libexec/popa3d   popa3d
Note: when started via an inetd clone, the logging of connections is left
up to that inetd clone or TCP wrappers.
2. Restart inetd by sending it a SIGHUP:
# killall -HUP inetd
===========================================================================
18:17:32
#pkg_info -Lx popa3d
Information for popa3d-1.0.2_1:
Files:
/usr/local/man/man8/popa3d.8.gz
/usr/local/libexec/popa3d
/usr/local/share/doc/popa3d/DESIGN
/usr/local/share/doc/popa3d/LICENSE
18:17:49
#vim /etc/rc.conf
--- /tmp/l3-saved-1123.27475.17739	2008-04-04 15:18:39.000000000 +0000
+++ /etc/rc.conf	2008-04-04 15:18:50.000000000 +0000
@@ -18,4 +18,4 @@
 knockd_enable="yes"
 named_enable="yes"
 sendmail_enable="yes"
-qpopper_enable=1
+popa3d_enable=1
18:18:50
#vim /usr/local/etc/xinetd.
18:18:50
#vim /usr/local/etc/xinetd.conf
18:19:21
#~ +q436f+q6b75+q6b64+q6b72+q6b6c+q2332+q2334+q2569+q2a37+q6b31
  2 {
  3 socket_type = stream
  4 wait = no
  5 user = root
~
~
~
~
~
~
...
~
~
~
~
~
~
~
~
~
"/usr/local/etc/xinetd.d/popa3d" [New] 8L, 133C written
18:20:52
#pkg_info -Lx popa3d
Information for popa3d-1.0.2_1:
Files:
/usr/local/man/man8/popa3d.8.gz
/usr/local/libexec/popa3d
/usr/local/share/doc/popa3d/DESIGN
/usr/local/share/doc/popa3d/LICENSE
18:21:19
#vim /usr/local/etc/xinetd.d/popa3d
--- /tmp/l3-saved-1123.30392.28184	2008-04-04 15:21:32.000000000 +0000
+++ /usr/local/etc/xinetd.d/popa3d	2008-04-04 15:22:11.000000000 +0000
@@ -3,6 +3,6 @@
 socket_type = stream
 wait = no
 user = root
-server = 
-popa3d: /usr/local/man/man8/popa3d.8.gz /usr/ports/mail/popa3d
+server = /usr/local/libexec/popa3d
+disable = no
 }
18:22:11
#sockstat -4l | grep 110

18:22:25
#killall -a xinetd
killall: unknown signal a; valid signals:
HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP
TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2
18:22:32
#killall -1xinetd

18:22:38
#sockstat -4l | grep 110
root     xinetd     852   5  tcp4   *:110                 *:*
18:22:39
#nc 127.0.0.1 110
+OK
USER user
+OK
PASS password
+OK
}q
-ERR
^C
18:23:09
#DISPLAY=192.168.16.204:0.0 evolution
(evolution:1774): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed
(evolution:1774): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed
(evolution:1774): Bonobo-CRITICAL **: impl_set_prop: assertion `value != NULL' failed
(evolution:1774): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed
(evolution:1774): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed
(evolution:1774): Bonobo-CRITICAL **: impl_set_prop: assertion `value != NULL' failed
(evolution:1774): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed
(evolution:1774): Gtk-CRITICAL **: gtk_icon_info_get_filename: assertion `icon_info != NULL' failed
(evolution:1774): Bonobo-CRITICAL **: impl_set_prop: assertion `value != NULL' failed
(evolution:1774): Gtk-CRITICAL **: gtk_icon_info_free: assertion `icon_info != NULL' failed
...
(evolution:1774): e-spinner.c-WARNING **: Throbber fallback animation not found either
(evolution:1774): e-spinner.c-WARNING **: Throbber animation not found
(evolution:1774): e-spinner.c-WARNING **: Throbber fallback animation not found either
(evolution:1774): e-spinner.c-WARNING **: Throbber animation not found
(evolution:1774): e-spinner.c-WARNING **: Throbber fallback animation not found either
(evolution:1774): e-attachment-bar.c-WARNING **: cannot find icon for mime type message/delivery-status (installation problem?)
(evolution:1774): e-attachment-bar.c-WARNING **: cannot find icon for mime type message/delivery-status (installation problem?)
(evolution:1774): e-attachment-bar.c-WARNING **: cannot find icon for mime type message/rfc822 (installation problem?)
^Z
[1]+  Stopped                 DISPLAY=192.168.16.204:0.0 evolution
18:29:24
#vim /etc/mail/ns.life.unix.nt.mc
--- /tmp/l3-saved-1123.5391.23439	2008-04-04 15:29:37.000000000 +0000
+++ /etc/mail/ns.life.unix.nt.mc	2008-04-04 15:29:52.000000000 +0000
@@ -89,7 +89,7 @@
 
 
 
-MASQUERADE_AS(`domain')
+MASQUERADE_AS(`life.unix.nt')
 FEATURE(masquerade_envelope)
 FEATURE(allmasquerade)
 FEATURE(masquerade_entire_domain)
18:29:52
#cd /etc/make
bash: cd: /etc/make: No such file or directory
18:29:58
#cd /etc/mail

18:30:01
#make
/usr/bin/m4 -D_CF_DIR_=/usr/share/sendmail/cf/   /usr/share/sendmail/cf/m4/cf.m4 ns.life.unix.nt.mc > ns.life.unix.nt.cf
18:30:03
#cp ns.life.unix.nt.cf sendmail.cf

18:30:10
#/etc/rc.d/sendmail restart
Stopping sendmail.
Starting sendmail.
18:30:19
#bg
[1]+ DISPLAY=192.168.16.204:0.0 evolution &     (wd: ~)
(evolution:1774): e-spinner.c-WARNING **: Throbber animation not found
(evolution:1774): e-spinner.c-WARNING **: Throbber fallback animation not found either
прошло 20 минут
18:50:58
#mail user@mega.unix.nt
Subject: test
xfg
.
EOT
18:54:55
#cd /usr/ports/www/sq
sqstat/            squid25/           squid_radius_auth/ squidguard/        squidtimes/        squirm/
squid/             squid30/           squidclients/      squidpurge/        squidview/         squishdot/
18:54:55
#cd /usr/ports/www/squid
squid/             squid25/           squid30/           squid_radius_auth/ squidclients/      squidguard/        squidpurge/        squidtimes/        squidview/
18:54:55
#cd /usr/ports/www/squid
squid/             squid25/           squid30/           squid_radius_auth/ squidclients/      squidguard/        squidpurge/        squidtimes/        squidview/
18:54:55
#cd /usr/ports/www/squid30/
(evolution:1774): e-spinner.c-WARNING **: Throbber animation not found
(evolution:1774): e-spinner.c-WARNING **: Throbber fallback animation not found either
(evolution:1774): e-spinner.c-WARNING **: Throbber animation not found
(evolution:1774): e-spinner.c-WARNING **: Throbber fallback animation not found either
cd /usr/ports/www/squid30/
[1]+  Done                    DISPLAY=192.168.16.204:0.0 evolution  (wd: ~)
(wd now: /usr/ports/www/squid30)
18:55:43
#ls
Makefile        distinfo        files           pkg-descr
18:55:46
#make install
checking for long... (cached) yes
checking size of long... 4
checking for u_int32_t... yes
checking for u_int32_t... (cached) yes
checking size of u_int32_t... 4
checking for uint32_t... yes
checking for uint32_t... (cached) yes
checking size of uint32_t... 4
checking for int64_t... yes
checking for int64_t... (cached) yes
...
checking for size_t... (cached) yes
checking size of size_t... 4
checking for ssize_t... yes
checking for off_t... yes
checking for off_t... (cached) yes
checking size of off_t... 8
checking for mode_t... yes
checking for fd_mask... yes
checking for working alloca.h... no
checking for alloca... yes

Статистика

Время первой команды журнала18:12:25 2008- 4- 4
Время последней команды журнала18:55:46 2008- 4- 4
Количество командных строк в журнале44
Процент команд с ненулевым кодом завершения, %11.36
Процент синтаксически неверно набранных команд, % 0.00
Суммарное время работы с терминалом *, час 0.72
Количество командных строк в единицу времени, команда/мин 1.01
Частота использования команд
vim9|==================| 18.75%
cd6|============| 12.50%
sockstat5|==========| 10.42%
grep4|========| 8.33%
pkg_info3|======| 6.25%
ps2|====| 4.17%
man2|====| 4.17%
make2|====| 4.17%
locate2|====| 4.17%
~2|====| 4.17%
killall2|====| 4.17%
cp1|==| 2.08%
bg1|==| 2.08%
nc1|==| 2.08%
mail1|==| 2.08%
pkg_add1|==| 2.08%
Pattern1|==| 2.08%
ls1|==| 2.08%
/etc/rc.d/sendmail1|==| 2.08%
DISPLAY=192.168.16.204:0.01|==| 2.08%
____
*) Интервалы неактивности длительностью 30 минут и более не учитываются

Справка

Для того чтобы использовать LiLaLo, не нужно знать ничего особенного: всё происходит само собой. Однако, чтобы ведение и последующее использование журналов было как можно более эффективным, желательно иметь в виду следующее:
  1. В журнал автоматически попадают все команды, данные в любом терминале системы.

  2. Для того чтобы убедиться, что журнал на текущем терминале ведётся, и команды записываются, дайте команду w. В поле WHAT, соответствующем текущему терминалу, должна быть указана программа script.

  3. Команды, при наборе которых были допущены синтаксические ошибки, выводятся перечёркнутым текстом:
    $ l s-l
    bash: l: command not found
    

  4. Если код завершения команды равен нулю, команда была выполнена без ошибок. Команды, код завершения которых отличен от нуля, выделяются цветом.
    $ test 5 -lt 4
    Обратите внимание на то, что код завершения команды может быть отличен от нуля не только в тех случаях, когда команда была выполнена с ошибкой. Многие команды используют код завершения, например, для того чтобы показать результаты проверки

  5. Команды, ход выполнения которых был прерван пользователем, выделяются цветом.
    $ find / -name abc
    find: /home/devi-orig/.gnome2: Keine Berechtigung
    find: /home/devi-orig/.gnome2_private: Keine Berechtigung
    find: /home/devi-orig/.nautilus/metafiles: Keine Berechtigung
    find: /home/devi-orig/.metacity: Keine Berechtigung
    find: /home/devi-orig/.inkscape: Keine Berechtigung
    ^C
    

  6. Команды, выполненные с привилегиями суперпользователя, выделяются слева красной чертой.
    # id
    uid=0(root) gid=0(root) Gruppen=0(root)
    

  7. Изменения, внесённые в текстовый файл с помощью редактора, запоминаются и показываются в журнале в формате ed. Строки, начинающиеся символом "<", удалены, а строки, начинающиеся символом ">" -- добавлены.
    $ vi ~/.bashrc
    2a3,5
    >    if [ -f /usr/local/etc/bash_completion ]; then
    >         . /usr/local/etc/bash_completion
    >        fi
    

  8. Для того чтобы изменить файл в соответствии с показанными в диффшоте изменениями, можно воспользоваться командой patch. Нужно скопировать изменения, запустить программу patch, указав в качестве её аргумента файл, к которому применяются изменения, и всавить скопированный текст:
    $ patch ~/.bashrc
    В данном случае изменения применяются к файлу ~/.bashrc

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

    Если справочная информация о команде есть, команда выделяется голубым фоном, например: vi. Если справочная информация отсутствует, команда выделяется розовым фоном, например: notepad.exe. Справочная информация может отсутствовать в том случае, если (1) команда введена неверно; (2) если распознавание команды LiLaLo выполнено неверно; (3) если информация о команде неизвестна LiLaLo. Последнее возможно для редких команд.

  10. Большие, в особенности многострочные, всплывающие подсказки лучше всего показываются браузерами KDE Konqueror, Apple Safari и Microsoft Internet Explorer. В браузерах Mozilla и Firefox они отображаются не полностью, а вместо перевода строки выводится специальный символ.

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

  12. Имя терминала, на котором была введена команда, показано в специальном блоке. Этот блок показывается только в том случае, если терминал текущей команды отличается от терминала предыдущей.

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

  14. Небольшие комментарии к командам можно вставлять прямо из командной строки. Комментарий вводится прямо в командную строку, после символов #^ или #v. Символы ^ и v показывают направление выбора команды, к которой относится комментарий: ^ - к предыдущей, v - к следующей. Например, если в командной строке было введено:

    $ whoami
    
    user
    
    $ #^ Интересно, кто я?
    
    в журнале это будет выглядеть так:
    $ whoami
    
    user
    
    Интересно, кто я?

  15. Если комментарий содержит несколько строк, его можно вставить в журнал следующим образом:

    $ whoami
    
    user
    
    $ cat > /dev/null #^ Интересно, кто я?
    
    Программа whoami выводит имя пользователя, под которым 
    мы зарегистрировались в системе.
    -
    Она не может ответить на вопрос о нашем назначении 
    в этом мире.
    
    В журнале это будет выглядеть так:
    $ whoami
    user
    
    Интересно, кто я?
    Программа whoami выводит имя пользователя, под которым
    мы зарегистрировались в системе.

    Она не может ответить на вопрос о нашем назначении
    в этом мире.
    Для разделения нескольких абзацев между собой используйте символ "-", один в строке.

  16. Комментарии, не относящиеся непосредственно ни к какой из команд, добавляются точно таким же способом, только вместо симолов #^ или #v нужно использовать символы #=

  17. Содержимое файла может быть показано в журнале. Для этого его нужно вывести с помощью программы cat. Если вывод команды отметить симоволами #!, содержимое файла будет показано в журнале в специально отведённой для этого секции.
  18. Для того чтобы вставить скриншот интересующего вас окна в журнал, нужно воспользоваться командой l3shot. После того как команда вызвана, нужно с помощью мыши выбрать окно, которое должно быть в журнале.
  19. Команды в журнале расположены в хронологическом порядке. Если две команды давались одна за другой, но на разных терминалах, в журнале они будут рядом, даже если они не имеют друг к другу никакого отношения.
    1
        2
    3   
        4
    
    Группы команд, выполненных на разных терминалах, разделяются специальной линией. Под этой линией в правом углу показано имя терминала, на котором выполнялись команды. Для того чтобы посмотреть команды только одного сенса, нужно щёкнуть по этому названию.

О программе

LiLaLo (L3) расшифровывается как Live Lab Log.
Программа разработана для повышения эффективности обучения Unix/Linux-системам.
(c) Игорь Чубин, 2004-2008

$Id$