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

Содержание

Журнал

Четверг (06/08/17)

/dev/pts/1
10:11:00
#chmod u+x test.sh

10:11:10
#vi test.sh
--- /tmp/l3-saved-9146.1997.18996	2017-06-08 11:12:28.936453830 +0300
+++ test.sh	2017-06-08 11:14:14.728433354 +0300
@@ -1,5 +1,5 @@
 #!/bin/bash
-users=$(awk -F: /etc/passwd '$3>999 && $3!=65534 {print$1}' | tr '\n' ' ')
+users=$(awk -F: '$3>999 && $3!=65534 {print $1}' /etc/passwd | tr '\n' ' ')
 for u in $users
     do
 	echo "Changing shel $1 for user $u"
10:14:14
#vi test.sh
10:14:20
#~
l3script: ./test.sh.: Нет такого файла или каталога
10:14:46
#./test.sh /bin/sh
Changing shel /bin/sh for user user
Changing shel /bin/sh for user ivan
Changing shel /bin/sh for user petr
10:14:53
#vi test.sh
--- /tmp/l3-saved-9146.5962.1060	2017-06-08 11:15:08.620454565 +0300
+++ test.sh	2017-06-08 11:15:22.328474010 +0300
@@ -2,7 +2,7 @@
 users=$(awk -F: '$3>999 && $3!=65534 {print $1}' /etc/passwd | tr '\n' ' ')
 for u in $users
     do
-	echo "Changing shel $1 for user $u"
+	echo "Changing shell $1 for user $u"
 	usermod -s $1 $u
     done
 
10:15:22
#./test.sh /bin/sh
Changing shell /bin/sh for user user
usermod: изменения не внесены
Changing shell /bin/sh for user ivan
usermod: изменения не внесены
Changing shell /bin/sh for user petr
usermod: изменения не внесены
10:15:29
#cat test.sh
#!/bin/bash
users=$(awk -F: '$3>999 && $3!=65534 {print $1}' /etc/passwd | tr '\n' ' ')
for u in $users
    do
        echo "Changing shell $1 for user $u"
        usermod -s $1 $u
    done
10:16:30
#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/sh
sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
ivan:x:1001:1001::/home/ivan:/bin/sh
petr:x:1002:1002::/home/petr:/bin/sh
10:16:47
#cat test.sh
#!/bin/bash
users=$(awk -F: '$3>999 && $3!=65534 {print $1}' /etc/passwd | tr '\n' ' ')
for u in $users
    do
        echo "Changing shell $1 for user $u"
        usermod -s $1 $u
    done
10:17:29
#./test.sh /bin/bash
Changing shell /bin/bash for user user
Changing shell /bin/bash for user ivan
Changing shell /bin/bash for user petr
10:17:42
#cat test.sh
#!/bin/bash
users=$(awk -F: '$3>999 && $3!=65534 {print $1}' /etc/passwd | tr '\n' ' ')
for u in $users
    do
        echo "Changing shell $1 for user $u"
        usermod -s $1 $u
    done
10:20:16
#vi test.sh
--- /tmp/l3-saved-9146.29758.14127	2017-06-08 11:20:22.788459205 +0300
+++ test.sh	2017-06-08 11:24:29.488463922 +0300
@@ -1,4 +1,5 @@
 #!/bin/bash
+s=${1:-/bin/bash}
 users=$(awk -F: '$3>999 && $3!=65534 {print $1}' /etc/passwd | tr '\n' ' ')
 for u in $users
     do
10:24:29
#vi test.sh
--- /tmp/l3-saved-9146.3024.4427	2017-06-08 11:24:53.936501879 +0300
+++ test.sh	2017-06-08 11:25:41.244416568 +0300
@@ -3,7 +3,7 @@
 users=$(awk -F: '$3>999 && $3!=65534 {print $1}' /etc/passwd | tr '\n' ' ')
 for u in $users
     do
-	echo "Changing shell $1 for user $u"
-	usermod -s $1 $u
+	echo "Changing shell $s for user $u"
+	usermod -s $s $u
     done
 
10:25:41
#./test.sh /bin/zsh
Changing shell /bin/zsh for user user
Changing shell /bin/zsh for user ivan
Changing shell /bin/zsh for user petr
10:25:47
#./test.sh
Changing shell /bin/bash for user user
Changing shell /bin/bash for user ivan
Changing shell /bin/bash for user petr
10:25:57
#cat test.sh
#!/bin/bash
s=${1:-/bin/bash}
users=$(awk -F: '$3>999 && $3!=65534 {print $1}' /etc/passwd | tr '\n' ' ')
for u in $users
    do
        echo "Changing shell $s for user $u"
        usermod -s $s $u
    done
10:26:55
#vi test.sh
--- /tmp/l3-saved-9146.29685.29117	2017-06-08 11:27:30.464466048 +0300
+++ test.sh	2017-06-08 12:30:37.804454119 +0300
@@ -1,5 +1,12 @@
 #!/bin/bash
-s=${1:-/bin/bash}
+shells=$(cat /etc/shells | sed '/^#/d' | tr '\n' ' ')
+r=`echo $1`
+for shell in $shells
+    do
+	test $1 = $shell 2> /dev/null && s=$1
+    done
+test -v r || s=/bin/bash
+test -v s || s=/bin/bash
 users=$(awk -F: '$3>999 && $3!=65534 {print $1}' /etc/passwd | tr '\n' ' ')
 for u in $users
     do
прошло 63 минуты
11:30:37
#./test.sh
Changing shell /bin/bash for user user
usermod: изменения не внесены
Changing shell /bin/bash for user ivan
usermod: изменения не внесены
Changing shell /bin/bash for user petr
usermod: изменения не внесены
11:30:42
#./test.sh zsh
Changing shell /bin/bash for user user
usermod: изменения не внесены
Changing shell /bin/bash for user ivan
usermod: изменения не внесены
Changing shell /bin/bash for user petr
usermod: изменения не внесены
11:30:48
#./test.sh /bin/sh
Changing shell /bin/sh for user user
Changing shell /bin/sh for user ivan
Changing shell /bin/sh for user petr
11:30:58
#./test.sh /bin/h
Changing shell /bin/bash for user user
Changing shell /bin/bash for user ivan
Changing shell /bin/bash for user petr
11:31:06
#./test.sh /bin/zsh
Changing shell /bin/zsh for user user
Changing shell /bin/zsh for user ivan
Changing shell /bin/zsh for user petr
11:31:14
#./test.sh
Changing shell /bin/bash for user user
Changing shell /bin/bash for user ivan
Changing shell /bin/bash for user petr
11:31:23
#cat test.sh
#!/bin/bash
shells=$(cat /etc/shells | sed '/^#/d' | tr '\n' ' ')
r=`echo $1`
for shell in $shells
    do
        test $1 = $shell 2> /dev/null && s=$1
    done
test -v r || s=/bin/bash
test -v s || s=/bin/bash
users=$(awk -F: '$3>999 && $3!=65534 {print $1}' /etc/passwd | tr '\n' ' ')
for u in $users
    do
        echo "Changing shell $s for user $u"
        usermod -s $s $u
    done
11:31:35
#cp no_file_with_this_name /tmp
cp: не удалось выполнить stat для «no_file_with_this_name»: Нет такого файла или каталога
прошло 103 минуты
13:14:39
#echo $?
0
13:14:45
#cp no_file_with_this_name /tmp
cp: не удалось выполнить stat для «no_file_with_this_name»: Нет такого файла или каталога
13:14:52
#touch no_file_with_this_name

13:15:45
#test 5 -gt 1

13:16:04
#echo $?
0
13:16:08
#test 5 -lt 1

13:16:16
#echo $?
1
13:16:19
#test -z "$STRING"

13:17:05
#echo $?
0
13:17:16
#test -z $STRING

13:17:31
#echo $?
0
13:17:33
#test "$P" != print

13:18:38
#echo $?
0
13:18:49
#test -e /etc/motd

13:19:08
#test -d /usr/local/bin

13:19:35
#echo $?
0
13:19:46
#test -d /usr/local/bi

13:19:55
#test -r /etc/shadow

13:20:19
#echo $?
0
13:20:21
#test -k /tmp

13:20:40
#echo $?
0
13:20:43
#test -w /etc/shadow

13:21:17
#echo $?
0
13:21:19
#x=5

13:22:23
#y=10

13:22:28
#test x -gt y
l3script: test: x: integer expression expected
13:22:43
#test $x -gt $y

13:23:28
#echo $?
1
13:23:33
#echo "Your lovely color"; read FAV_COL;\
> blue
Your lovely color
^[[A^[[B
l3script: blue: команда не найдена
13:25:30
#echo "Your lovely color"; read FAV_COL;blue
Your lovely color
l3script: blue: команда не найдена
13:26:08
#echo "Your lovely color"; read FAV_COL;\
>
Your lovely color
13:26:22
#echo "Your lovely color"; read FAV_COL; echo FAV_COL;\
> blue
Your lovely color
blue
FAV_COL
l3script: blue: команда не найдена
13:27:10
#echo "Your lovely color"; read FAV_COL; echo $FAV_COL;
Your lovely color
blue
blue
13:31:42
#a=0

13:31:58
#while [ $A -lt 10 ]
> do
> a=$((A+1))
> echo $A
> done
l3script: [: -lt: ожидается использование унарного оператора
13:33:09
#a=0; while [ $A -lt 10 ]; do; a=$((A+1)); echo $A; done;\
l3script: syntax error near unexpected token `;'
13:35:01
#a=0; while [ $a -lt 10 ]; do a=$((a+1)); echo $a; done;\
> ^C
13:36:19
#a=0; while [ $a -lt 10 ]; do; a=$((a+1)); echo $a; done
l3script: syntax error near unexpected token `;'
13:36:28
#a=0; while [ $a -lt 10 ]; do; a=$((a+1)); echo $a; done;
l3script: syntax error near unexpected token `;'
13:36:32
#a=0; while [ $a -lt 10 ]; do; a=$((a+1)); echo $a; done
l3script: syntax error near unexpected token `;'
13:38:08
#a=0; while [ $a -lt 10 ]; do a=$((a+1)); echo $a; done
1
2
3
4
5
6
7
8
9
10
13:38:13
#ls
2352f346  d132     ip.txt                  passwd
34634r    install  no_file_with_this_name  test.sh
прошло 42 минуты
14:20:54
#ls -a
.         .aptitude      d132     .lilalo                 test.sh
..        .bash_history  install  no_file_with_this_name  .vim
2352f346  .bash_profile  ip.txt   passwd                  .viminfo
34634r    .bashrc        .l3rc    .profile
14:21:02
#ls -a .lilalo/
.
..
12286226602558528048-1496902234_1496908388_root_test.sh.diff
12286226602558528048-1496902234_1496909442_root_test.sh.diff
12286226602558528048-1496902234_1496909548_root_test.sh.diff
12286226602558528048-1496902234_1496909656_root_test.sh.diff
12286226602558528048-1496902234_1496909708_root_test.sh.diff
12286226602558528048-1496902234_1496910022_root_test.sh.diff
12286226602558528048-1496902234_1496910293_root_test.sh.diff
12286226602558528048-1496902234_1496910450_root_test.sh.diff
...
32003262121268631887-1496732854_1496755254_root_text_hello-vi.txt.diff
32003262121268631887-1496732854_1496755367_tmp_passwd.diff
32003262121268631887-1496732854_1496756226_tmp_passwd.diff
32003262121268631887-1496732854.info
32003262121268631887-1496732854.script
l3-agent.pid
l3bashrc
l3prompt
.report.dat
report.xml
14:21:08
#ls -al .lilalo/
итого 1232
drwxr-xr-x 2 root root   4096 Июн  8 12:30 .
drwx------ 5 root root   4096 Июн  8 14:15 ..
-rw-r--r-- 1 root root    297 Июн  8 11:10 12286226602558528048-1496902234_1496908388_root_test.sh.diff
-rw-r--r-- 1 root root      0 Июн  8 11:10 12286226602558528048-1496902234_1496909442_root_test.sh.diff
-rw-r--r-- 1 root root    363 Июн  8 11:14 12286226602558528048-1496902234_1496909548_root_test.sh.diff
-rw-r--r-- 1 root root      0 Июн  8 11:14 12286226602558528048-1496902234_1496909656_root_test.sh.diff
-rw-r--r-- 1 root root    343 Июн  8 11:15 12286226602558528048-1496902234_1496909708_root_test.sh.diff
-rw-r--r-- 1 root root    269 Июн  8 11:24 12286226602558528048-1496902234_1496910022_root_test.sh.diff
-rw-r--r-- 1 root root    363 Июн  8 11:25 12286226602558528048-1496902234_1496910293_root_test.sh.diff
...
-rw-r--r-- 1 root root      0 Июн  6 16:21 32003262121268631887-1496732854_1496755254_root_text_hello-vi.txt.diff
-rw-r--r-- 1 root root      0 Июн  6 16:37 32003262121268631887-1496732854_1496755367_tmp_passwd.diff
-rw-r--r-- 1 root root      0 Июн  6 16:37 32003262121268631887-1496732854_1496756226_tmp_passwd.diff
-rw-r--r-- 1 root root  12634 Июн  6 17:33 32003262121268631887-1496732854.info
-rw-r--r-- 1 root root 111848 Июн  6 17:33 32003262121268631887-1496732854.script
-rw-r--r-- 1 root root      4 Июн  6 10:03 l3-agent.pid
-rw-r--r-- 1 root root   7857 Окт 15  2014 l3bashrc
-rwxr-xr-x 1 root root    234 Окт 15  2014 l3prompt
-rw-r--r-- 1 root root    503 Июн  8 15:21 .report.dat
-rw-r--r-- 1 root root 242811 Июн  8 15:21 report.xml
14:21:16
#date
Чтв Июн  8 15:21:19 EEST 2017

Пятница (06/09/17)

/dev/pts/1
08:42:11
#pwd
/root
08:44:44
#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
прошло 20 минут
09:05:00
#cat /etc/shadow
root:$6$ppY7xZxX$CnutMU4XxetHko6DW5K/ckfiA6CFeC0cbV/d6rrWE6F5iszqxAaQTwekH3.vBTQPNCakvqusvPcBecndLcbX8.:16248:0:99999:7:::
daemon:*:16248:0:99999:7:::
bin:*:16248:0:99999:7:::
sys:*:16248:0:99999:7:::
sync:*:16248:0:99999:7:::
games:*:16248:0:99999:7:::
man:*:16248:0:99999:7:::
lp:*:16248:0:99999:7:::
mail:*:16248:0:99999:7:::
news:*:16248:0:99999:7:::
...
list:*:16248:0:99999:7:::
irc:*:16248:0:99999:7:::
gnats:*:16248:0:99999:7:::
nobody:*:16248:0:99999:7:::
libuuid:!:16248:0:99999:7:::
Debian-exim:!:16248:0:99999:7:::
user:$6$CkJHVC8E$ykTJUix/7qmcPBJgqnJtCHlWhYfEaImqXcQyeRrwYm6Xi4KaZSfb4FB20ocZ/VlrQzTR2wiEobMxT/OM/FXgd0:16248:0:99999:7:::
sshd:*:16248:0:99999:7:::
ivan:$6$LxwVJ4nM$UHokv9LBcaOYi4zhzvcBkARWoG.pHK0MMJQEO04buRGE9C5JFYxjusoHWdSQe3MmDGe37pPPVfTXlP.bigt7A0:17323:0:99999:7:::
petr:$6$7DICjfn0$X1aS6j5dHB1OpdDD7C8SDssXy3YlziRQrXyknDqgsZep2zPmftisLRnVORRnDuAarPuP0ic6oRpzBz7HePXBJ1:17323:0:99999:7:::
09:08:16
#apt-get finger
E: Неверная операция finger
09:17:42
#apt-get install finger
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
НОВЫЕ пакеты, которые будут установлены:
  finger
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 20,5 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 31,7 kB.
Получено:1 http://ftp.ua.debian.org/debian/ wheezy/main finger amd64 0.17-15 [20,5 kB]
Получено 20,5 kБ за 0с (543 kБ/c)
Выбор ранее не выбранного пакета finger.
(Чтение базы данных … на данный момент установлено 30012 файлов и каталогов.)
Распаковывается пакет finger (из файла …/finger_0.17-15_amd64.deb) …
Обрабатываются триггеры для man-db …
Настраивается пакет finger (0.17-15) …
09:18:01
#ls -l /var/log/wtmp
-rw-rw-r-- 1 root utmp 14592 Июн  9 09:44 /var/log/wtmp
09:19:16
#ls -l /var/log/lastlog
-rw-rw-r-- 1 root utmp 292876 Июн  9 09:44 /var/log/lastlog
09:19:29
#less /etc/default/useradd
прошло 16 минут
09:35:46
#vi /etc/login.defs
09:39:26
#chage - petr
, --lastday ПОСÐсмены пароля°Ð¼ÐµÑ‚ры] ПОÐ
                                в ПОСÐ
, --expiredate ДАТА_УСТ     установить дату окончания действия
                                учётной записи в ДАТА_УСТ
  -h, --help                    показать данное сообщение и закончить работу
  -I, --inactive НЕАКТИВНОСТЬ   установить неактивность пароля после
                                устаревания в значение НЕАКТИВНОСТЬ
  -l, --list                    показать «возраст» учётной записи
  -m, --mindays МИН_ДНЕЙ        установить минимальное число дней перед
                                сменой пароля в МИН_ДНЕЙ
  -M, --maxdays МАКС_ДНЕЙ       установить максимальное число дней перед
                                сменой пароля в МАКС_ДНЕЙ
  -R, --root КАТ_CHROOT         каталог, в который выполняется chroot
  -W, --warndays ПРЕДУП_ДНЕЙ    установить количество дней с выдачей
                                предупреждения в ПРЕДУП_ДНЕЙ
прошло 11 минут
09:50:54
#chage -l petr
Последний раз пароль был изменён                                    : Июн 06, 2017
Срок действия пароля истекает                                 : никогда
Пароль будет деактивирован через                                   : никогда
Срок действия учётной записи истекает                                          : никогда
Минимальное количество дней между сменой пароля               : 0
Максимальное количество дней между сменой пароля             : 99999
Количество дней с предупреждением перед деактивацией пароля        : 7
09:51:05
#groupadd developers

прошло 13 минут
10:05:01
#groupmod -g 10000 developers

10:05:56
#cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
...
users:x:100:
nogroup:x:65534:
libuuid:x:101:
crontab:x:102:
Debian-exim:x:103:
ssh:x:104:
user:x:1000:
ivan:x:1001:
petr:x:1002:
developers:x:10000:
10:06:23
#usermod -G developers ivan

10:10:43
#id ivan
uid=1001(ivan) gid=1001(ivan) группы=1001(ivan),10000(developers)
10:11:03
#gpasswd -a petr developers
Добавление пользователя petr в группу developers
10:12:53
#cat /etc/gshadow
root:*::
daemon:*::
bin:*::
sys:*::
adm:*::
tty:*::
disk:*::
lp:*::
mail:*::
news:*::
...
users:*::
nogroup:*::
libuuid:!::
crontab:!::
Debian-exim:!::
ssh:!::
user:!::
ivan:!::
petr:!::
developers:!::ivan,petr
10:14:13
#mkdir /opt/public

прошло >3 часов
13:15:59
#ls -ld /opt/public
drwxr-xr-x 2 root root 4096 Июн  9 14:15 /opt/public
13:16:29
#chmod o+w /opt/public

13:17:06
#> /opt/public/ROOT

13:20:07
#chmod +t /opt/public

13:21:00
#find / -perm -4000 2> /dev/null
/usr/lib/openssh/ssh-keysign
/usr/lib/pt_chown
/usr/lib/eject/dmcrypt-get-device
/usr/bin/passwd
/usr/bin/chfn
/usr/bin/gpasswd
/usr/bin/chsh
/usr/bin/newgrp
/usr/sbin/exim4
/bin/mount
/bin/su
/bin/ping6
/bin/umount
/bin/ping
13:30:33
#find / -perm -2000 2> /dev/null
/usr/bin/chage
/usr/bin/crontab
/usr/bin/dotlockfile
/usr/bin/mail-lock
/usr/bin/mail-unlock
/usr/bin/expiry
/usr/bin/screen
/usr/bin/bsd-write
/usr/bin/ssh-agent
/usr/bin/wall
...
/var/cache/man/pt_BR/cat1
/var/cache/man/pt_BR/cat8
/var/cache/man/pt_BR/cat5
/var/cache/man/sl
/var/cache/man/sl/cat1
/var/cache/man/sl/cat8
/var/mail
/var/local
/var/log/exim4
/sbin/unix_chkpwd
13:34:04
#ls -lL `which write`
-rwxr-sr-x 1 root tty 14624 Июн 11  2012 /usr/bin/write
13:34:18
#mkdir /opt/project

13:35:53
#ls -l /opt/
итого 8
drwxr-xr-x 2 root root 4096 Июн  9 14:35 project
drwxr-xrwt 2 root root 4096 Июн  9 14:20 public
13:36:07
#chmod 770 project
chmod: невозможно получить доступ к «project»: Нет такого файла или каталога

Файлы

  • /etc/group
  • /etc/gshadow
  • /etc/passwd
  • /etc/shadow
  • test.sh
  • /etc/group
    >
    root:x:0:
    daemon:x:1:
    bin:x:2:
    sys:x:3:
    adm:x:4:
    tty:x:5:
    disk:x:6:
    lp:x:7:
    mail:x:8:
    news:x:9:
    uucp:x:10:
    man:x:12:
    proxy:x:13:
    kmem:x:15:
    dialout:x:20:
    fax:x:21:
    voice:x:22:
    cdrom:x:24:user
    floppy:x:25:user
    tape:x:26:
    sudo:x:27:
    audio:x:29:user
    dip:x:30:user
    www-data:x:33:
    backup:x:34:
    operator:x:37:
    list:x:38:
    irc:x:39:
    src:x:40:
    gnats:x:41:
    shadow:x:42:
    utmp:x:43:
    video:x:44:user
    sasl:x:45:
    plugdev:x:46:user
    staff:x:50:
    games:x:60:
    users:x:100:
    nogroup:x:65534:
    libuuid:x:101:
    crontab:x:102:
    Debian-exim:x:103:
    ssh:x:104:
    user:x:1000:
    ivan:x:1001:
    petr:x:1002:
    developers:x:10000:
    
    /etc/gshadow
    >
    root:*::
    daemon:*::
    bin:*::
    sys:*::
    adm:*::
    tty:*::
    disk:*::
    lp:*::
    mail:*::
    news:*::
    uucp:*::
    man:*::
    proxy:*::
    kmem:*::
    dialout:*::
    fax:*::
    voice:*::
    cdrom:*::user
    floppy:*::user
    tape:*::
    sudo:*::
    audio:*::user
    dip:*::user
    www-data:*::
    backup:*::
    operator:*::
    list:*::
    irc:*::
    src:*::
    gnats:*::
    shadow:*::
    utmp:*::
    video:*::user
    sasl:*::
    plugdev:*::user
    staff:*::
    games:*::
    users:*::
    nogroup:*::
    libuuid:!::
    crontab:!::
    Debian-exim:!::
    ssh:!::
    user:!::
    ivan:!::
    petr:!::
    developers:!::ivan,petr
    
    /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/bash
    
    /etc/shadow
    >
    root:$6$ppY7xZxX$CnutMU4XxetHko6DW5K/ckfiA6CFeC0cbV/d6rrWE6F5iszqxAaQTwekH3.vBTQPNCakvqusvPcBecndLcbX8.:16248:0:99999:7:::
    daemon:*:16248:0:99999:7:::
    bin:*:16248:0:99999:7:::
    sys:*:16248:0:99999:7:::
    sync:*:16248:0:99999:7:::
    games:*:16248:0:99999:7:::
    man:*:16248:0:99999:7:::
    lp:*:16248:0:99999:7:::
    mail:*:16248:0:99999:7:::
    news:*:16248:0:99999:7:::
    uucp:*:16248:0:99999:7:::
    proxy:*:16248:0:99999:7:::
    www-data:*:16248:0:99999:7:::
    backup:*:16248:0:99999:7:::
    list:*:16248:0:99999:7:::
    irc:*:16248:0:99999:7:::
    gnats:*:16248:0:99999:7:::
    nobody:*:16248:0:99999:7:::
    libuuid:!:16248:0:99999:7:::
    Debian-exim:!:16248:0:99999:7:::
    user:$6$CkJHVC8E$ykTJUix/7qmcPBJgqnJtCHlWhYfEaImqXcQyeRrwYm6Xi4KaZSfb4FB20ocZ/VlrQzTR2wiEobMxT/OM/FXgd0:16248:0:99999:7:::
    sshd:*:16248:0:99999:7:::
    ivan:$6$LxwVJ4nM$UHokv9LBcaOYi4zhzvcBkARWoG.pHK0MMJQEO04buRGE9C5JFYxjusoHWdSQe3MmDGe37pPPVfTXlP.bigt7A0:17323:0:99999:7:::
    petr:$6$7DICjfn0$X1aS6j5dHB1OpdDD7C8SDssXy3YlziRQrXyknDqgsZep2zPmftisLRnVORRnDuAarPuP0ic6oRpzBz7HePXBJ1:17323:0:99999:7:::
    
    test.sh
    >
    #!/bin/bash
    shells=$(cat /etc/shells | sed '/^#/d' | tr '\n' ' ')
    r=`echo $1`
    for shell in $shells
        do
            test $1 = $shell 2> /dev/null && s=$1
        done
    test -v r || s=/bin/bash
    test -v s || s=/bin/bash
    users=$(awk -F: '$3>999 && $3!=65534 {print $1}' /etc/passwd | tr '\n' ' ')
    for u in $users
        do
            echo "Changing shell $s for user $u"
            usermod -s $s $u
        done
    

    Статистика

    Время первой команды журнала10:11:00 2017- 6- 8
    Время последней команды журнала13:36:07 2017- 6- 9
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, %12.87
    Процент синтаксически неверно набранных команд, % 3.96
    Суммарное время работы с терминалом *, час 2.55
    Количество командных строк в единицу времени, команда/мин 0.66
    Частота использования команд
    echo22|===============| 15.38%
    test13|=========| 9.09%
    test.sh11|=======| 7.69%
    cat10|======| 6.99%
    ls9|======| 6.29%
    while7|====| 4.90%
    a=07|====| 4.90%
    vi7|====| 4.90%
    do6|====| 4.20%
    done6|====| 4.20%
    \5|===| 3.50%
    read5|===| 3.50%
    chmod4|==| 2.80%
    a=$((a+1))3|==| 2.10%
    mkdir2|=| 1.40%
    cp2|=| 1.40%
    apt-get2|=| 1.40%
    chage2|=| 1.40%
    find2|=| 1.40%
    null2|=| 1.40%
    x=51|| 0.70%
    groupadd1|| 0.70%
    ROOT1|| 0.70%
    a=$((A+1))1|| 0.70%
    blue1|| 0.70%
    ~1|| 0.70%
    gpasswd1|| 0.70%
    groupmod1|| 0.70%
    touch1|| 0.70%
    pwd1|| 0.70%
    >1|| 0.70%
    y=101|| 0.70%
    id1|| 0.70%
    less1|| 0.70%
    date1|| 0.70%
    usermod1|| 0.70%
    ____
    *) Интервалы неактивности длительностью 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$