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

Содержание

Журнал

Среда (09/06/17)

/dev/pts/4
13:01:20
#vi shell.sh
--- /tmp/l3-saved-14947.27724.12141	2017-09-06 14:01:24.089947317 +0300
+++ shell.sh	2017-09-06 14:01:43.725945319 +0300
@@ -3,7 +3,7 @@
 users=$(awk -F: '$3>=1000 && $3!=65534{print $1}' /etc/passwd | tr "\n" " ")
 #echo $users
 for user in $users
- du
+ do
   echo "Sanging shell for user $user..."
   usermod -s /bin/zsh $user
  done
13:01:44
#./shell.sh
Sanging shell for user user...
Sanging shell for user ivan...
Sanging shell for user petr...
13:01:45
#vi shell.sh
--- /tmp/l3-saved-14947.31525.26738	2017-09-06 14:02:01.009945427 +0300
+++ shell.sh	2017-09-06 14:05:34.973941127 +0300
@@ -2,8 +2,10 @@
 
 users=$(awk -F: '$3>=1000 && $3!=65534{print $1}' /etc/passwd | tr "\n" " ")
 #echo $users
+$shell=$1
+
 for user in $users
  do
-  echo "Sanging shell for user $user..."
-  usermod -s /bin/zsh $user
+  echo "Sanging shel($shell) for user $user..."
+  usermod -s /bin/$shell $user
  done
13:05:35
#./shell.sh bash
./shell.sh: line 5: =bash: команда не найдена
Sanging shel() for user user...
Sanging shel() for user ivan...
Sanging shel() for user petr...
13:05:42
#vi shell.sh
--- /tmp/l3-saved-14947.23432.31570	2017-09-06 14:05:55.513961048 +0300
+++ shell.sh	2017-09-06 14:06:51.305932108 +0300
@@ -1,8 +1,7 @@
 #!/bin/bash
 
 users=$(awk -F: '$3>=1000 && $3!=65534{print $1}' /etc/passwd | tr "\n" " ")
-#echo $users
-$shell=$1
+shell=$1
 
 for user in $users
  do
13:06:52
#./shell.sh bash
Sanging shel(bash) for user user...
Sanging shel(bash) for user ivan...
Sanging shel(bash) for user petr...
13:06:53
#echo --help
--help
13:08:26
#echo -h
-h
13:08:39
#echo --h
--h
13:08:42
#help echo
echo: echo [-neE] [arg ...]
    Write arguments to the standard output.
    Display the ARGs on the standard output followed by a newline.
    Options:
      -n        do not append a newline
      -e        enable interpretation of the following backslash escapes
      -E        explicitly suppress interpretation of backslash escapes
    `echo' interprets the following backslash-escaped characters:
      \a        alert (bell)
      \b        backspace
...
      \r        carriage return
      \t        horizontal tab
      \v        vertical tab
      \\        backslash
      \0nnn     the character whose ASCII code is NNN (octal).  NNN can be
        0 to 3 octal digits
      \xHH      the eight-bit character whose value is HH (hexadecimal).  HH
        can be one or two hex digits
    Exit Status:
    Returns success unless a write error occurs.
13:08:58
#vi shell.sh
--- /tmp/l3-saved-14947.30947.17332	2017-09-06 14:09:42.105901481 +0300
+++ shell.sh	2017-09-06 14:12:41.325947483 +0300
@@ -1,7 +1,7 @@
 #!/bin/bash
 
 users=$(awk -F: '$3>=1000 && $3!=65534{print $1}' /etc/passwd | tr "\n" " ")
-shell=$1
+shell=${1:-bash}
 
 for user in $users
  do
13:12:41
#./shell.sh zsh
Sanging shel(zsh) for user user...
Sanging shel(zsh) for user ivan...
Sanging shel(zsh) for user petr...
13:12:55
#vi shell.sh
--- /tmp/l3-saved-14947.1100.17073	2017-09-06 14:13:03.066022384 +0300
+++ shell.sh	2017-09-06 14:22:05.769936265 +0300
@@ -5,6 +5,6 @@
 
 for user in $users
  do
-  echo "Sanging shel($shell) for user $user..."
+  echo "Chaning shell ($shell) for user $user..."
   usermod -s /bin/$shell $user
  done
13:22:05
#echo $HO
$HOME      $HOSTNAME  $HOSTTYPE
13:22:05
#echo $HOSTTYPE
x86_64
13:23:16
#t=25

13:23:42
#echo t=25
t=25
13:23:51
#echo $t=25
25=25
13:23:57
#echo $t
25
13:24:02
#bash
root@debian1:~# pstree
init─┬─acpid
     ├─cron
     ├─exim4
     ├─6*[getty]
     ├─2*[l3-agent]
     ├─rsyslogd───3*[{rsyslogd}]
     ├─2*[script───l3script]
     ├─script───l3script───6*[vi]
     ├─sshd─┬─sshd───bash───script───script───l3script─┬─bash───pstree
     │      │                                          └─3*[vi]
     │      └─sshd───sshd───bash───script───script───l3script─┬─less
     │                                                        └─3*[man───pager]
     └─udevd
root@debian1:~# exit
exit
13:24:45
#export t

13:26:11
#bash
root@debian1:~# echo $t
25
root@debian1:~# exit
exit
13:26:31
#vi shell.sh
13:27:06
#./shell.sh bash
Chaning shell (bash) for user user...
Chaning shell (bash) for user ivan...
Chaning shell (bash) for user petr...
13:27:15
#env
SHELL=/bin/bash
TERM=xterm
HISTSIZE=2000
SSH_CLIENT=192.168.16.123 49158 22
L3_PARENT_TTY=/dev/pts/4
OLDPWD=/usr/share/man
L3_TAMPERED_EDITORS= vi vim pico nano
SSH_TTY=/dev/pts/4
USER=root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAIL=/var/mail/root
L3_SESSION_ID=218773071363958840-1504677427
PWD=/root
LANG=ru_RU.UTF-8
13:27:22
#vi shell.sh
13:31:37
#~

13:31:39
#test 5 -eq 5 && echo $?
0
13:39:22
#test 5 -eq 7 && echo $?

13:39:27
#test 5 -eq 7 && echo $? || echo $?
1
13:39:34
#test 5 -eq 7 ; echo $?
1
13:40:16
#test 5 -eq 5 ; echo $?
0
13:41:58
#ping -c100 8.8.8.8 &> report.txt &
[6] 21104
13:46:19
#jobs
[1]   Stopped                 /usr/bin/vi "$@"
[2]   Stopped                 /usr/bin/vi "$@"
[3]   Stopped                 /usr/bin/vi "$@"
[4]-  Stopped                 /usr/bin/vi "$@"
[5]+  Stopped                 /usr/bin/vi "$@"
[6]   Running                 ping -c100 8.8.8.8 &>report.txt &
13:46:23
#kill %1
[1]+  Stopped                 /usr/bin/vi "$@"
13:47:07
#kill %2
[2]+  Stopped                 /usr/bin/vi "$@"
13:47:08
#kill %3
[3]+  Stopped                 /usr/bin/vi "$@"
13:47:09
#kill %4
[4]+  Stopped                 /usr/bin/vi "$@"
13:47:10
#kill %5
[5]+  Stopped                 /usr/bin/vi "$@"
13:47:11
#kill %6
[6]   Завершено      ping -c100 8.8.8.8 &>report.txt
13:47:13
#cat report.txt
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=46 time=45.8 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=46 time=53.3 ms
64 bytes from 8.8.8.8: icmp_req=3 ttl=46 time=53.7 ms
64 bytes from 8.8.8.8: icmp_req=4 ttl=46 time=46.9 ms
64 bytes from 8.8.8.8: icmp_req=5 ttl=46 time=62.9 ms
64 bytes from 8.8.8.8: icmp_req=6 ttl=46 time=48.2 ms
64 bytes from 8.8.8.8: icmp_req=7 ttl=46 time=46.1 ms
64 bytes from 8.8.8.8: icmp_req=8 ttl=46 time=45.8 ms
64 bytes from 8.8.8.8: icmp_req=9 ttl=46 time=60.6 ms
...
64 bytes from 8.8.8.8: icmp_req=45 ttl=46 time=47.3 ms
64 bytes from 8.8.8.8: icmp_req=46 ttl=46 time=46.6 ms
64 bytes from 8.8.8.8: icmp_req=47 ttl=46 time=61.5 ms
64 bytes from 8.8.8.8: icmp_req=48 ttl=46 time=49.4 ms
64 bytes from 8.8.8.8: icmp_req=49 ttl=46 time=49.0 ms
64 bytes from 8.8.8.8: icmp_req=50 ttl=46 time=63.0 ms
64 bytes from 8.8.8.8: icmp_req=51 ttl=46 time=48.9 ms
64 bytes from 8.8.8.8: icmp_req=52 ttl=46 time=45.6 ms
64 bytes from 8.8.8.8: icmp_req=53 ttl=46 time=45.7 ms
64 bytes from 8.8.8.8: icmp_req=54 ttl=46 time=45.7 ms
13:47:30
#jobs
[1]   Stopped                 /usr/bin/vi "$@"
[2]   Stopped                 /usr/bin/vi "$@"
[3]   Stopped                 /usr/bin/vi "$@"
[4]-  Stopped                 /usr/bin/vi "$@"
[5]+  Stopped                 /usr/bin/vi "$@"
13:47:37
#ping -c100 8.8.8.8 &> report.txt
^Z
[6]+  Stopped                 ping -c100 8.8.8.8 &>report.txt
13:47:55
#bg %1
[1] /usr/bin/vi "$@" &
[1]+  Stopped                 /usr/bin/vi "$@"
13:48:29
#bg %6
[6]- ping -c100 8.8.8.8 &>report.txt &
13:48:34
#exit
exit
Есть приостановленные задачи.
/dev/pts/4
13:50:24
#tree
.
├── 2
├── d1
│   ├── f1
│   └── f2
├── d2
│   └── d3
│       ├── f1
│       └── f2
├── f1 -> /root/d1/f1
├── f1H
├── install
├── ip.txt
├── messages
├── passwd
├── passwd.new
├── report.txt
├── shell.sh
└── syslog
3 directories, 15 files
13:50:29
#stree
l3script: stree: команда не найдена
13:50:31
#test -x shell.sh

13:52:56
#echo $?
0
13:53:11
#code= echo $?
0
13:54:22
#code=echo $?
l3script: 0: команда не найдена
13:55:28
#code=echo $?
l3script: 127: команда не найдена
13:55:33
#code='echo $?'

13:56:05
#test -x shell.sh ; code
l3script: code: команда не найдена
13:56:22
#test -x shell.sh ; $code
$?
13:56:26
#test -x shell.sh ; $code
$?
13:57:27
#test -x shell.sh

13:58:00
#vi /etc/init.d/cron
14:07:50
#touch proc.sh

14:07:57
#vi proc.sh
--- /tmp/l3-saved-21322.18182.25919	2017-09-06 15:08:08.205918480 +0300
+++ proc.sh	2017-09-06 15:12:38.601951352 +0300
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+i=1
+
+while [$i -lt 100000 ]
+ do
+  echo $i > /dev/pts/2
+  clear > /dev/pts/2
+  i=$[$i+1]
+ done
14:12:39
#chmod u+x proc.sh

14:12:50
#who
root     pts/4        2017-09-06 14:50 (192.168.16.123)
14:12:56
#who
root     pts/4        2017-09-06 14:50 (192.168.16.123)
user     pts/8        2017-09-06 15:13 (192.168.16.123)
14:13:24
#vi proc.sh
--- /tmp/l3-saved-21322.6432.6618	2017-09-06 15:13:29.625949249 +0300
+++ proc.sh	2017-09-06 15:13:45.669947285 +0300
@@ -4,7 +4,7 @@
 
 while [$i -lt 100000 ]
  do
-  echo $i > /dev/pts/2
-  clear > /dev/pts/2
+  echo $i > /dev/pts/8
+  clear > /dev/pts/8
   i=$[$i+1]
  done
14:13:45
#vi proc.sh
14:13:50
#~
l3script: Z: команда не найдена
14:13:51
#who
root     pts/4        2017-09-06 14:50 (192.168.16.123)
user     pts/8        2017-09-06 15:13 (192.168.16.123)
14:13:53
#./proc.sh
./proc.sh: line 5: [1: команда не найдена
14:14:16
#vi proc.sh
--- /tmp/l3-saved-21322.21607.24660	2017-09-06 15:14:21.777949159 +0300
+++ proc.sh	2017-09-06 15:15:41.281957522 +0300
@@ -2,7 +2,7 @@
 
 i=1
 
-while [$i -lt 100000 ]
+while [ $i -lt 10000 ]
  do
   echo $i > /dev/pts/8
   clear > /dev/pts/8
14:15:41
#./proc.sh

14:16:24
#./proc.sh

14:18:13
#./proc.sh
./proc.sh: line 8: /dev/pts/8: Отказано в доступе
./proc.sh: line 7: /dev/pts/8: Отказано в доступе
./proc.sh: line 8: /dev/pts/8: Отказано в доступе
./proc.sh: line 7: /dev/pts/8: Отказано в доступе
./proc.sh: line 8: /dev/pts/8: Отказано в доступе
./proc.sh: line 7: /dev/pts/8: Отказано в доступе
./proc.sh: line 8: /dev/pts/8: Отказано в доступе
./proc.sh: line 7: /dev/pts/8: Отказано в доступе
./proc.sh: line 8: /dev/pts/8: Отказано в доступе
./proc.sh: line 7: /dev/pts/8: Отказано в доступе
...
./proc.sh: line 8: /dev/pts/8: Отказано в доступе
./proc.sh: line 7: /dev/pts/8: Отказано в доступе
./proc.sh: line 8: /dev/pts/8: Отказано в доступе
./proc.sh: line 7: /dev/pts/8: Отказано в доступе
./proc.sh: line 8: /dev/pts/8: Отказано в доступе
./proc.sh: line 7: /dev/pts/8: Отказано в доступе
./proc.sh: line 8: /dev/pts/8: Отказано в доступе
./proc.sh: line 7: /dev/pts/8: Отказано в доступе
^Z
[1]+  Stopped                 ./proc.sh
14:19:35
#jobs
[1]+  Stopped                 ./proc.sh
14:19:41
#kill %1
[1]+  Завершено      ./proc.sh
14:19:50
#jobs

14:19:55
#test -w /etc/passwd

прошло 23 минуты
14:43:22
#echo $?
0
14:43:30
#cat proc.sh
#!/bin/bash
i=1
while [ $i -lt 10000 ]
 do
  echo $i > /dev/pts/8
  clear > /dev/pts/8
  i=$[$i+1]
 done
прошло 14 минут
14:58:22
#for file in /etc/* ; do [ -r $file ] || echo $file; done

15:02:24
#cat /etc/passwd-
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
...
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
Debian-exim:x:101:103::/var/spool/exim4:/bin/false
user:x:1000:1000:user,,,:/home/user:/bin/bash
sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
ivan:x:1001:1001::/home/ivan:/bin/bash
petr:x:1002:1002::/home/petr:/bin/zsh

Четверг (09/07/17)

/dev/pts/4
07:58:10
#cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
...
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
Debian-exim:x:101:103::/var/spool/exim4:/bin/false
user:x:1000:1000:user,,,:/home/user:/bin/bash
sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
ivan:x:1001:1001::/home/ivan:/bin/bash
petr:x:1002:1002::/home/petr:/bin/bash
08:06:59
#chfn
Изменение информации о пользователе root
Введите новое значение или нажмите ENTER для выбора значения по умолчанию
        Полное имя [root]: ^C
прошло 16 минут
08:23:41
#chfn ivan
Изменение информации о пользователе ivan
Введите новое значение или нажмите ENTER для выбора значения по умолчанию
        Полное имя []: Ivan
        Номер комнаты []: 404
        Рабочий телефон []: 7-11-99
        Домашний телефон []:
        Другое []: Temp user
08:24:26
#cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
...
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
Debian-exim:x:101:103::/var/spool/exim4:/bin/false
user:x:1000:1000:user,,,:/home/user:/bin/bash
sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
ivan:x:1001:1001:Ivan,404,7-11-99,,Temp user:/home/ivan:/bin/bash
petr:x:1002:1002::/home/petr:/bin/bash
08:24:39
#finger ivan
Login: ivan                             Name: Ivan
Directory: /home/ivan                   Shell: /bin/bash
Office: 404, 7-11-99
Last login Tue Sep  5 09:29 (EEST) on pts/6 from 192.168.16.123
No mail.
No Plan.
08:27:43
#witch
l3script: witch: команда не найдена
08:28:28
#wipefs
2              .bash_profile  d2/            install        .lilalo/       passwd         .profile       .shell.sh.swo  .viminfo
.aptitude/     .bashrc        f1             ip.txt         messages       passwd.new     report.txt     syslog         .vimrc
.bash_history  d1/            f1H            .l3rc          .messages.swp  proc.sh        shell.sh       .vim/
08:28:28
#wipefs
2              .bash_profile  d2/            install        .lilalo/       passwd         .profile       .shell.sh.swo  .viminfo
.aptitude/     .bashrc        f1             ip.txt         messages       passwd.new     report.txt     syslog         .vimrc
.bash_history  d1/            f1H            .l3rc          .messages.swp  proc.sh        shell.sh       .vim/
08:29:46
#cat /etc/default/useradd
# Default values for useradd(8)
#
# The SHELL variable specifies the default login shell on your
# system.
# Similar to DHSELL in adduser. However, we use "sh" here because
# useradd is a low level utility and should be as general
# as possible
SHELL=/bin/sh
#
# The default group for users
...
# EXPIRE=
#
# The SKEL variable specifies the directory containing "skeletal" user
# files; in other words, files such as a sample .profile that will be
# copied to the new user's home directory when it is created.
# SKEL=/etc/skel
#
# Defines whether the mail spool should be created while
# creating the account
# CREATE_MAIL_SPOOL=yes
08:29:54
#vi /etc/default/useradd
--- /tmp/l3-saved-20834.22224.6307	2017-09-07 09:31:33.393943638 +0300
+++ /etc/default/useradd	2017-09-07 09:34:05.525945667 +0300
@@ -5,7 +5,7 @@
 # Similar to DHSELL in adduser. However, we use "sh" here because
 # useradd is a low level utility and should be as general
 # as possible
-SHELL=/bin/sh
+SHELL=/bin/bash
 #
 # The default group for users
 # 100=users on Debian systems
08:34:05
#vi /etc/login.defs
08:43:58
#~
l3script: cange: команда не найдена
08:44:06
#change l ivan
l3script: change: команда не найдена
08:44:10
#chage l ivan
, --lastday ПОСÐсмены пароля°Ð¼ÐµÑ‚ры] ПОÐ
                                в ПОСÐ
, --expiredate ДАТА_УСТ     установить дату окончания действия
                                учётной записи в ДАТА_УСТ
  -h, --help                    показать данное сообщение и закончить работу
  -I, --inactive НЕАКТИВНОСТЬ   установить неактивность пароля после
                                устаревания в значение НЕАКТИВНОСТЬ
  -l, --list                    показать «возраст» учётной записи
  -m, --mindays МИН_ДНЕЙ        установить минимальное число дней перед
                                сменой пароля в МИН_ДНЕЙ
  -M, --maxdays МАКС_ДНЕЙ       установить максимальное число дней перед
                                сменой пароля в МАКС_ДНЕЙ
  -R, --root КАТ_CHROOT         каталог, в который выполняется chroot
  -W, --warndays ПРЕДУП_ДНЕЙ    установить количество дней с выдачей
                                предупреждения в ПРЕДУП_ДНЕЙ
08:44:18
#chage -l ivan
Последний раз пароль был изменён                                    : Сен 04, 2017
Срок действия пароля истекает                                 : никогда
Пароль будет деактивирован через                                   : никогда
Срок действия учётной записи истекает                                          : никогда
Минимальное количество дней между сменой пароля               : 0
Максимальное количество дней между сменой пароля             : 99999
Количество дней с предупреждением перед деактивацией пароля        : 7
08:44:22
#vi /etc/shadow
08:51:48
#~
gai.conf  groff/    group     group-    grub.d/   gshadow   gshadow-
08:51:48
#vi /etc/gr
08:51:48
#vi /etc/gr
08:51:48
#vi /etc/gro

Файлы

  • /etc/default/useradd
  • /etc/passwd
  • /etc/passwd-
  • proc.sh
  • report.txt
  • /etc/default/useradd
    >
    # Default values for useradd(8)
    #
    # The SHELL variable specifies the default login shell on your
    # system.
    # Similar to DHSELL in adduser. However, we use "sh" here because
    # useradd is a low level utility and should be as general
    # as possible
    SHELL=/bin/sh
    #
    # The default group for users
    # 100=users on Debian systems
    # Same as USERS_GID in adduser
    # This argument is used when the -n flag is specified.
    # The default behavior (when -n and -g are not specified) is to create a
    # primary user group with the same name as the user being added to the
    # system.
    # GROUP=100
    #
    # The default home directory. Same as DHOME for adduser
    # HOME=/home
    #
    # The number of days after a password expires until the account
    # is permanently disabled
    # INACTIVE=-1
    #
    # The default expire date
    # EXPIRE=
    #
    # The SKEL variable specifies the directory containing "skeletal" user
    # files; in other words, files such as a sample .profile that will be
    # copied to the new user's home directory when it is created.
    # SKEL=/etc/skel
    #
    # Defines whether the mail spool should be created while
    # creating the account
    # CREATE_MAIL_SPOOL=yes
    
    /etc/passwd
    >
    root:x:0:0:root:/root:/bin/bash
    daemon:x:1:1:daemon:/usr/sbin:/bin/sh
    bin:x:2:2:bin:/bin:/bin/sh
    sys:x:3:3:sys:/dev:/bin/sh
    sync:x:4:65534:sync:/bin:/bin/sync
    games:x:5:60:games:/usr/games:/bin/sh
    man:x:6:12:man:/var/cache/man:/bin/sh
    lp:x:7:7:lp:/var/spool/lpd:/bin/sh
    mail:x:8:8:mail:/var/mail:/bin/sh
    news:x:9:9:news:/var/spool/news:/bin/sh
    uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
    proxy:x:13:13:proxy:/bin:/bin/sh
    www-data:x:33:33:www-data:/var/www:/bin/sh
    backup:x:34:34:backup:/var/backups:/bin/sh
    list:x:38:38:Mailing List Manager:/var/list:/bin/sh
    irc:x:39:39:ircd:/var/run/ircd:/bin/sh
    gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
    nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
    libuuid:x:100:101::/var/lib/libuuid:/bin/sh
    Debian-exim:x:101:103::/var/spool/exim4:/bin/false
    user:x:1000:1000:user,,,:/home/user:/bin/bash
    sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
    ivan:x:1001:1001:Ivan,404,7-11-99,,Temp user:/home/ivan:/bin/bash
    petr:x:1002:1002::/home/petr:/bin/bash
    
    /etc/passwd-
    >
    root:x:0:0:root:/root:/bin/bash
    daemon:x:1:1:daemon:/usr/sbin:/bin/sh
    bin:x:2:2:bin:/bin:/bin/sh
    sys:x:3:3:sys:/dev:/bin/sh
    sync:x:4:65534:sync:/bin:/bin/sync
    games:x:5:60:games:/usr/games:/bin/sh
    man:x:6:12:man:/var/cache/man:/bin/sh
    lp:x:7:7:lp:/var/spool/lpd:/bin/sh
    mail:x:8:8:mail:/var/mail:/bin/sh
    news:x:9:9:news:/var/spool/news:/bin/sh
    uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
    proxy:x:13:13:proxy:/bin:/bin/sh
    www-data:x:33:33:www-data:/var/www:/bin/sh
    backup:x:34:34:backup:/var/backups:/bin/sh
    list:x:38:38:Mailing List Manager:/var/list:/bin/sh
    irc:x:39:39:ircd:/var/run/ircd:/bin/sh
    gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
    nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
    libuuid:x:100:101::/var/lib/libuuid:/bin/sh
    Debian-exim:x:101:103::/var/spool/exim4:/bin/false
    user:x:1000:1000:user,,,:/home/user:/bin/bash
    sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
    ivan:x:1001:1001::/home/ivan:/bin/bash
    petr:x:1002:1002::/home/petr:/bin/zsh
    
    proc.sh
    >
    #!/bin/bash
    i=1
    while [ $i -lt 10000 ]
     do
      echo $i > /dev/pts/8
      clear > /dev/pts/8
      i=$[$i+1]
     done
    
    report.txt
    >
    PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
    64 bytes from 8.8.8.8: icmp_req=1 ttl=46 time=45.8 ms
    64 bytes from 8.8.8.8: icmp_req=2 ttl=46 time=53.3 ms
    64 bytes from 8.8.8.8: icmp_req=3 ttl=46 time=53.7 ms
    64 bytes from 8.8.8.8: icmp_req=4 ttl=46 time=46.9 ms
    64 bytes from 8.8.8.8: icmp_req=5 ttl=46 time=62.9 ms
    64 bytes from 8.8.8.8: icmp_req=6 ttl=46 time=48.2 ms
    64 bytes from 8.8.8.8: icmp_req=7 ttl=46 time=46.1 ms
    64 bytes from 8.8.8.8: icmp_req=8 ttl=46 time=45.8 ms
    64 bytes from 8.8.8.8: icmp_req=9 ttl=46 time=60.6 ms
    64 bytes from 8.8.8.8: icmp_req=10 ttl=46 time=58.7 ms
    64 bytes from 8.8.8.8: icmp_req=11 ttl=46 time=45.7 ms
    64 bytes from 8.8.8.8: icmp_req=12 ttl=46 time=45.7 ms
    64 bytes from 8.8.8.8: icmp_req=13 ttl=46 time=48.6 ms
    64 bytes from 8.8.8.8: icmp_req=14 ttl=46 time=45.7 ms
    64 bytes from 8.8.8.8: icmp_req=15 ttl=46 time=45.7 ms
    64 bytes from 8.8.8.8: icmp_req=16 ttl=46 time=46.0 ms
    64 bytes from 8.8.8.8: icmp_req=17 ttl=46 time=49.5 ms
    64 bytes from 8.8.8.8: icmp_req=18 ttl=46 time=47.9 ms
    64 bytes from 8.8.8.8: icmp_req=19 ttl=46 time=45.7 ms
    64 bytes from 8.8.8.8: icmp_req=20 ttl=46 time=46.4 ms
    64 bytes from 8.8.8.8: icmp_req=21 ttl=46 time=45.7 ms
    64 bytes from 8.8.8.8: icmp_req=22 ttl=46 time=46.6 ms
    64 bytes from 8.8.8.8: icmp_req=23 ttl=46 time=58.8 ms
    64 bytes from 8.8.8.8: icmp_req=24 ttl=46 time=46.9 ms
    64 bytes from 8.8.8.8: icmp_req=25 ttl=46 time=45.7 ms
    64 bytes from 8.8.8.8: icmp_req=26 ttl=46 time=66.1 ms
    64 bytes from 8.8.8.8: icmp_req=27 ttl=46 time=48.5 ms
    64 bytes from 8.8.8.8: icmp_req=28 ttl=46 time=53.3 ms
    64 bytes from 8.8.8.8: icmp_req=29 ttl=46 time=45.7 ms
    64 bytes from 8.8.8.8: icmp_req=30 ttl=46 time=45.7 ms
    64 bytes from 8.8.8.8: icmp_req=31 ttl=46 time=49.1 ms
    64 bytes from 8.8.8.8: icmp_req=32 ttl=46 time=58.2 ms
    64 bytes from 8.8.8.8: icmp_req=33 ttl=46 time=45.9 ms
    64 bytes from 8.8.8.8: icmp_req=34 ttl=46 time=45.7 ms
    64 bytes from 8.8.8.8: icmp_req=36 ttl=46 time=49.3 ms
    64 bytes from 8.8.8.8: icmp_req=37 ttl=46 time=45.7 ms
    64 bytes from 8.8.8.8: icmp_req=38 ttl=46 time=45.7 ms
    64 bytes from 8.8.8.8: icmp_req=39 ttl=46 time=55.6 ms
    64 bytes from 8.8.8.8: icmp_req=40 ttl=46 time=50.3 ms
    64 bytes from 8.8.8.8: icmp_req=41 ttl=46 time=46.0 ms
    64 bytes from 8.8.8.8: icmp_req=42 ttl=46 time=57.3 ms
    64 bytes from 8.8.8.8: icmp_req=43 ttl=46 time=46.4 ms
    64 bytes from 8.8.8.8: icmp_req=45 ttl=46 time=47.3 ms
    64 bytes from 8.8.8.8: icmp_req=46 ttl=46 time=46.6 ms
    64 bytes from 8.8.8.8: icmp_req=47 ttl=46 time=61.5 ms
    64 bytes from 8.8.8.8: icmp_req=48 ttl=46 time=49.4 ms
    64 bytes from 8.8.8.8: icmp_req=49 ttl=46 time=49.0 ms
    64 bytes from 8.8.8.8: icmp_req=50 ttl=46 time=63.0 ms
    64 bytes from 8.8.8.8: icmp_req=51 ttl=46 time=48.9 ms
    64 bytes from 8.8.8.8: icmp_req=52 ttl=46 time=45.6 ms
    64 bytes from 8.8.8.8: icmp_req=53 ttl=46 time=45.7 ms
    64 bytes from 8.8.8.8: icmp_req=54 ttl=46 time=45.7 ms
    

    Статистика

    Время первой команды журнала13:01:20 2017- 9- 6
    Время последней команды журнала08:51:48 2017- 9- 7
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, %12.87
    Процент синтаксически неверно набранных команд, % 9.90
    Суммарное время работы с терминалом *, час 2.91
    Количество командных строк в единицу времени, команда/мин 0.58
    Частота использования команд
    vi18|===============| 15.13%
    echo16|=============| 13.45%
    test11|=========| 9.24%
    kill7|=====| 5.88%
    cat6|=====| 5.04%
    shell.sh5|====| 4.20%
    ~4|===| 3.36%
    proc.sh4|===| 3.36%
    jobs4|===| 3.36%
    &3|==| 2.52%
    who3|==| 2.52%
    chfn2|=| 1.68%
    bg2|=| 1.68%
    chage2|=| 1.68%
    $code2|=| 1.68%
    ping2|=| 1.68%
    >2|=| 1.68%
    code=echo2|=| 1.68%
    bash2|=| 1.68%
    wipefs2|=| 1.68%
    report.txt2|=| 1.68%
    stree1|| 0.84%
    chmod1|| 0.84%
    env1|| 0.84%
    help1|| 0.84%
    do1|| 0.84%
    witch1|| 0.84%
    touch1|| 0.84%
    code=1|| 0.84%
    for1|| 0.84%
    change1|| 0.84%
    finger1|| 0.84%
    code1|| 0.84%
    export1|| 0.84%
    t=251|| 0.84%
    exit1|| 0.84%
    code='echo1|| 0.84%
    tree1|| 0.84%
    done1|| 0.84%
    ____
    *) Интервалы неактивности длительностью 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$