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

Содержание

Журнал

Среда (11/29/17)

/dev/pts/0
13:05:08
#bush
l3script: bush: команда не найдена
/dev/pts/1
13:05:08
#bush
l3script: bush: команда не найдена
/dev/pts/0
13:05:12
#bash
root@debian2:~# echo $a
root@debian2:~# exit
exit
/dev/pts/1
13:05:12
#bash
root@debian2:~# echo $a
root@debian2:~# exit
exit
/dev/pts/0
13:05:27
#env
SHELL=/bin/bash
TERM=xterm
HISTSIZE=2000
SSH_CLIENT=192.168.16.208 49169 22
L3_PARENT_TTY=/dev/pts/1
L3_TAMPERED_EDITORS= vi vim pico nano vi vim pico nano
SSH_TTY=/dev/pts/0
USER=root
HISTFILESIZE=2000
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAIL=/var/mail/root
L3_SESSION_ID=3108108379211155-1511957072
PWD=/root
LANG=ru_RU.UTF-8
/dev/pts/1
13:05:27
#env
SHELL=/bin/bash
TERM=xterm
HISTSIZE=2000
SSH_CLIENT=192.168.16.208 49169 22
L3_PARENT_TTY=/dev/pts/1
L3_TAMPERED_EDITORS= vi vim pico nano vi vim pico nano
SSH_TTY=/dev/pts/0
USER=root
HISTFILESIZE=2000
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAIL=/var/mail/root
L3_SESSION_ID=3108108379211155-1511957072
PWD=/root
LANG=ru_RU.UTF-8
/dev/pts/0
13:05:39
#b=20

/dev/pts/1
13:05:39
#b=20

/dev/pts/0
13:05:46
#env
SHELL=/bin/bash
TERM=xterm
HISTSIZE=2000
SSH_CLIENT=192.168.16.208 49169 22
L3_PARENT_TTY=/dev/pts/1
L3_TAMPERED_EDITORS= vi vim pico nano vi vim pico nano
SSH_TTY=/dev/pts/0
USER=root
HISTFILESIZE=2000
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAIL=/var/mail/root
L3_SESSION_ID=3108108379211155-1511957072
PWD=/root
LANG=ru_RU.UTF-8
/dev/pts/1
13:05:46
#env
SHELL=/bin/bash
TERM=xterm
HISTSIZE=2000
SSH_CLIENT=192.168.16.208 49169 22
L3_PARENT_TTY=/dev/pts/1
L3_TAMPERED_EDITORS= vi vim pico nano vi vim pico nano
SSH_TTY=/dev/pts/0
USER=root
HISTFILESIZE=2000
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAIL=/var/mail/root
L3_SESSION_ID=3108108379211155-1511957072
PWD=/root
LANG=ru_RU.UTF-8
/dev/pts/0
13:05:47
#export b

/dev/pts/1
13:05:47
#export b

/dev/pts/0
13:05:57
#env
SHELL=/bin/bash
TERM=xterm
HISTSIZE=2000
SSH_CLIENT=192.168.16.208 49169 22
L3_PARENT_TTY=/dev/pts/1
L3_TAMPERED_EDITORS= vi vim pico nano vi vim pico nano
SSH_TTY=/dev/pts/0
USER=root
HISTFILESIZE=2000
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAIL=/var/mail/root
L3_SESSION_ID=3108108379211155-1511957072
PWD=/root
b=20
LANG=ru_RU.UTF-8
/dev/pts/1
13:05:57
#env
SHELL=/bin/bash
TERM=xterm
HISTSIZE=2000
SSH_CLIENT=192.168.16.208 49169 22
L3_PARENT_TTY=/dev/pts/1
L3_TAMPERED_EDITORS= vi vim pico nano vi vim pico nano
SSH_TTY=/dev/pts/0
USER=root
HISTFILESIZE=2000
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAIL=/var/mail/root
L3_SESSION_ID=3108108379211155-1511957072
PWD=/root
b=20
LANG=ru_RU.UTF-8
/dev/pts/0
13:05:58
#set
BASH=/usr/local/bin/l3script
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="2" [2]="37" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
BASH_VERSION='4.2.37(1)-release'
...
LOGNAME=root
MACHTYPE=x86_64-pc-linux-gnu
MAIL=/var/mail/root
MAILCHECK=60
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PIPESTATUS=([0]="0")
PPID=14244
/dev/pts/1
13:05:58
#set
BASH=/usr/local/bin/l3script
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="2" [2]="37" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
BASH_VERSION='4.2.37(1)-release'
...
LOGNAME=root
MACHTYPE=x86_64-pc-linux-gnu
MAIL=/var/mail/root
MAILCHECK=60
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PIPESTATUS=([0]="0")
PPID=14244
/dev/pts/0
13:06:18
#set | les
l3script: les: команда не найдена
/dev/pts/1
13:06:18
#set | les
l3script: les: команда не найдена
/dev/pts/0
13:06:46
#set | less
/dev/pts/1
13:06:46
#set | less
/dev/pts/0
13:07:36
#set | egrep '^[[:alpha]]+='
egrep: Непарная [ или [^
/dev/pts/1
13:07:36
#set | egrep '^[[:alpha]]+='
egrep: Непарная [ или [^
/dev/pts/0
13:10:51
#set | egrep '^[[:alpha]]+='
egrep: Непарная [ или [^
/dev/pts/1
13:10:51
#set | egrep '^[[:alpha]]+='
egrep: Непарная [ или [^
/dev/pts/0
13:11:14
#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
/dev/pts/1
13:11:14
#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
/dev/pts/0
13:11:37
#> shell.sh

/dev/pts/1
13:11:37
#> shell.sh

/dev/pts/0
13:13:28
#vi shell.sh
/dev/pts/1
13:13:28
#vi shell.sh
--- /tmp/l3-saved-14245.2513.2895	2017-11-29 14:13:40.682538773 +0200
+++ shell.sh	2017-11-29 14:35:43.662545042 +0200
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+users=$(awk -F: '$3>=1000 && $3!=65534{print $1}' /etc/passwd | tr '\n\' ' ')
+for user in $users
+ do
+  echo "Changing shell for user $user..."
+  usermode -s /bin/zsh $user        
+ done
прошло 22 минуты
/dev/pts/0
13:35:43
#ls -l
итого 28
-rw-r--r-- 1 root root   75 Ноя 28 12:49 files.txt
-rw-r--r-- 1 root root 5268 Окт 13  2014 install
-rw-r--r-- 1 root root  119 Ноя 28 16:22 ip.txt
-rw-r--r-- 1 root root  986 Ноя 28 16:30 passwd
-rw-r--r-- 1 root root  199 Ноя 29 14:35 shell.sh
drwxr-xr-x 2 root root 4096 Ноя 29 13:39 soft
/dev/pts/1
13:35:43
#ls -l
итого 28
-rw-r--r-- 1 root root   75 Ноя 28 12:49 files.txt
-rw-r--r-- 1 root root 5268 Окт 13  2014 install
-rw-r--r-- 1 root root  119 Ноя 28 16:22 ip.txt
-rw-r--r-- 1 root root  986 Ноя 28 16:30 passwd
-rw-r--r-- 1 root root  199 Ноя 29 14:35 shell.sh
drwxr-xr-x 2 root root 4096 Ноя 29 13:39 soft
/dev/pts/0
13:36:34
#chmod u+x shell.sh

/dev/pts/1
13:36:34
#chmod u+x shell.sh

/dev/pts/0
13:38:13
#ls -l
итого 28
-rw-r--r-- 1 root root   75 Ноя 28 12:49 files.txt
-rw-r--r-- 1 root root 5268 Окт 13  2014 install
-rw-r--r-- 1 root root  119 Ноя 28 16:22 ip.txt
-rw-r--r-- 1 root root  986 Ноя 28 16:30 passwd
-rwxr--r-- 1 root root  199 Ноя 29 14:35 shell.sh
drwxr-xr-x 2 root root 4096 Ноя 29 13:39 soft
/dev/pts/1
13:38:13
#ls -l
итого 28
-rw-r--r-- 1 root root   75 Ноя 28 12:49 files.txt
-rw-r--r-- 1 root root 5268 Окт 13  2014 install
-rw-r--r-- 1 root root  119 Ноя 28 16:22 ip.txt
-rw-r--r-- 1 root root  986 Ноя 28 16:30 passwd
-rwxr--r-- 1 root root  199 Ноя 29 14:35 shell.sh
drwxr-xr-x 2 root root 4096 Ноя 29 13:39 soft
/dev/pts/0
13:38:18
#ls -l --color
итого 28
-rw-r--r-- 1 root root   75 Ноя 28 12:49 files.txt
-rw-r--r-- 1 root root 5268 Окт 13  2014 install
-rw-r--r-- 1 root root  119 Ноя 28 16:22 ip.txt
-rw-r--r-- 1 root root  986 Ноя 28 16:30 passwd
-rwxr--r-- 1 root root  199 Ноя 29 14:35 shell.sh
drwxr-xr-x 2 root root 4096 Ноя 29 13:39 soft
/dev/pts/1
13:38:18
#ls -l --color
итого 28
-rw-r--r-- 1 root root   75 Ноя 28 12:49 files.txt
-rw-r--r-- 1 root root 5268 Окт 13  2014 install
-rw-r--r-- 1 root root  119 Ноя 28 16:22 ip.txt
-rw-r--r-- 1 root root  986 Ноя 28 16:30 passwd
-rwxr--r-- 1 root root  199 Ноя 29 14:35 shell.sh
drwxr-xr-x 2 root root 4096 Ноя 29 13:39 soft
/dev/pts/0
13:38:32
#./shell.sh
tr: предупреждение: неэкранированная обратная косая черта в конце строке непереносима между платформами
Changing shell for user user...
./shell.sh: line 7: usermode: команда не найдена
Changing shell for user ivan...
./shell.sh: line 7: usermode: команда не найдена
Changing shell for user petr...
./shell.sh: line 7: usermode: команда не найдена
/dev/pts/1
13:38:32
#./shell.sh
tr: предупреждение: неэкранированная обратная косая черта в конце строке непереносима между платформами
Changing shell for user user...
./shell.sh: line 7: usermode: команда не найдена
Changing shell for user ivan...
./shell.sh: line 7: usermode: команда не найдена
Changing shell for user petr...
./shell.sh: line 7: usermode: команда не найдена
/dev/pts/0
13:38:59
#vi shell.sh
/dev/pts/1
13:38:59
#vi shell.sh
/dev/pts/0
13:40:17
#~
files.txt  install  ip.txt  passwd  shell.sh  soft
/dev/pts/1
13:40:17
#~
files.txt  install  ip.txt  passwd  shell.sh  soft
/dev/pts/0
13:40:18
#vi shell.sh
/dev/pts/1
13:40:18
#vi shell.sh
/dev/pts/0
13:41:10
#~
l3script: zsh: команда не найдена
/dev/pts/1
13:41:10
#~
l3script: zsh: команда не найдена
/dev/pts/0
13:41:15
#shells
l3script: shells: команда не найдена
/dev/pts/1
13:41:15
#shells
l3script: shells: команда не найдена
/dev/pts/0
13:41:36
#shels
l3script: shels: команда не найдена
/dev/pts/1
13:41:36
#shels
l3script: shels: команда не найдена
/dev/pts/0
13:41:39
#cat /ect/shells
cat: /ect/shells: Нет такого файла или каталога
/dev/pts/1
13:41:39
#cat /ect/shells
cat: /ect/shells: Нет такого файла или каталога
/dev/pts/0
13:41:58
#cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/screen
/dev/pts/1
13:41:58
#cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/screen
/dev/pts/0
13:42:05
#dash
dash: 1: Syntax error: Bad fd number
/dev/pts/1
13:42:05
#dash
dash: 1: Syntax error: Bad fd number
/dev/pts/0
13:42:23
#apt-get install zsh
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Предлагаемые пакеты:
  zsh-doc
НОВЫЕ пакеты, которые будут установлены:
  zsh
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 4 916 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 11,7 MB.
Получено:1 http://ftp.ua.debian.org/debian/ wheezy/main zsh amd64 4.3.17-1 [4 916 kB]
Получено 4 916 kБ за 0с (5 774 kБ/c)
Выбор ранее не выбранного пакета zsh.
(Чтение базы данных … на данный момент установлено 28843 файла и каталога.)
Распаковывается пакет zsh (из файла …/zsh_4.3.17-1_amd64.deb) …
Обрабатываются триггеры для man-db …
Настраивается пакет zsh (4.3.17-1) …
update-alternatives: используется /bin/zsh4 для предоставления /bin/zsh (zsh) в автоматический режим
update-alternatives: используется /bin/zsh4 для предоставления /bin/rzsh (rzsh) в автоматический режим
update-alternatives: используется /bin/zsh4 для предоставления /bin/ksh (ksh) в автоматический режим
/dev/pts/1
13:42:23
#apt-get install zsh
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Предлагаемые пакеты:
  zsh-doc
НОВЫЕ пакеты, которые будут установлены:
  zsh
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 4 916 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 11,7 MB.
Получено:1 http://ftp.ua.debian.org/debian/ wheezy/main zsh amd64 4.3.17-1 [4 916 kB]
Получено 4 916 kБ за 0с (5 774 kБ/c)
Выбор ранее не выбранного пакета zsh.
(Чтение базы данных … на данный момент установлено 28843 файла и каталога.)
Распаковывается пакет zsh (из файла …/zsh_4.3.17-1_amd64.deb) …
Обрабатываются триггеры для man-db …
Настраивается пакет zsh (4.3.17-1) …
update-alternatives: используется /bin/zsh4 для предоставления /bin/zsh (zsh) в автоматический режим
update-alternatives: используется /bin/zsh4 для предоставления /bin/rzsh (rzsh) в автоматический режим
update-alternatives: используется /bin/zsh4 для предоставления /bin/ksh (ksh) в автоматический режим
/dev/pts/0
13:42:52
#cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/screen
/bin/zsh
/usr/bin/zsh
/dev/pts/1
13:42:52
#cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/screen
/bin/zsh
/usr/bin/zsh
/dev/pts/0
13:43:05
#./shell.sh
tr: предупреждение: неэкранированная обратная косая черта в конце строке непереносима между платформами
Changing shell for user user...
./shell.sh: line 7: usermode: команда не найдена
Changing shell for user ivan...
./shell.sh: line 7: usermode: команда не найдена
Changing shell for user petr...
./shell.sh: line 7: usermode: команда не найдена
/dev/pts/1
13:43:05
#./shell.sh
tr: предупреждение: неэкранированная обратная косая черта в конце строке непереносима между платформами
Changing shell for user user...
./shell.sh: line 7: usermode: команда не найдена
Changing shell for user ivan...
./shell.sh: line 7: usermode: команда не найдена
Changing shell for user petr...
./shell.sh: line 7: usermode: команда не найдена
/dev/pts/0
13:43:13
#vi ./shell.sh
/dev/pts/1
13:43:13
#vi ./shell.sh
--- /tmp/l3-saved-14245.17013.8684	2017-11-29 14:43:49.094532711 +0200
+++ ./shell.sh	2017-11-29 14:44:04.634538866 +0200
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-users=$(awk -F: '$3>=1000 && $3!=65534{print $1}' /etc/passwd | tr '\n\' ' ')
+users=$(awk -F: '$3>=1000 && $3!=65534{print $1}' /etc/passwd | tr '\n' ' ')
 for user in $users
  do
   echo "Changing shell for user $user..."
/dev/pts/0
13:44:04
#./shell.sh
Changing shell for user user...
./shell.sh: line 7: usermode: команда не найдена
Changing shell for user ivan...
./shell.sh: line 7: usermode: команда не найдена
Changing shell for user petr...
./shell.sh: line 7: usermode: команда не найдена
/dev/pts/1
13:44:04
#./shell.sh
Changing shell for user user...
./shell.sh: line 7: usermode: команда не найдена
Changing shell for user ivan...
./shell.sh: line 7: usermode: команда не найдена
Changing shell for user petr...
./shell.sh: line 7: usermode: команда не найдена
/dev/pts/0
13:44:06
#vi ./shell.sh
/dev/pts/1
13:44:06
#vi ./shell.sh
--- /tmp/l3-saved-14245.6851.2926	2017-11-29 14:44:12.638532123 +0200
+++ ./shell.sh	2017-11-29 14:44:31.626544290 +0200
@@ -4,5 +4,5 @@
 for user in $users
  do
   echo "Changing shell for user $user..."
-  usermode -s /bin/zsh $user        
+  usermod -s /bin/zsh $user        
  done
/dev/pts/0
13:44:31
#./shell.sh
Changing shell for user user...
Changing shell for user ivan...
Changing shell for user petr...
/dev/pts/1
13:44:31
#./shell.sh
Changing shell for user user...
Changing shell for user ivan...
Changing shell for user petr...
/dev/pts/0
13:44:33
#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/zsh
sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
ivan:x:1001:1001::/home/ivan:/bin/zsh
petr:x:1002:1002::/home/petr:/bin/zsh
/dev/pts/1
13:44:33
#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/zsh
sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
ivan:x:1001:1001::/home/ivan:/bin/zsh
petr:x:1002:1002::/home/petr:/bin/zsh
/dev/pts/0
13:45:07
#vi ./shell.sh
/dev/pts/1
13:45:07
#vi ./shell.sh
--- /tmp/l3-saved-14245.27944.28483	2017-11-29 14:47:18.362538707 +0200
+++ ./shell.sh	2017-11-29 14:53:14.982529682 +0200
@@ -1,8 +1,10 @@
 #!/bin/bash
 
+shell="/bin/$1"
+
 users=$(awk -F: '$3>=1000 && $3!=65534{print $1}' /etc/passwd | tr '\n' ' ')
 for user in $users
  do
-  echo "Changing shell for user $user..."
-  usermod -s /bin/zsh $user        
+  echo "Changing shell $shell for user $user..."
+  usermod -s $shell $user        
  done
/dev/pts/0
13:53:15
#./shell.sh
Changing shell /bin/ for user user...
Changing shell /bin/ for user ivan...
Changing shell /bin/ for user petr...
/dev/pts/1
13:53:15
#./shell.sh
Changing shell /bin/ for user user...
Changing shell /bin/ for user ivan...
Changing shell /bin/ for user petr...
/dev/pts/0
13:53:18
#./shell.sh bash
Changing shell /bin/bash for user user...
Changing shell /bin/bash for user ivan...
Changing shell /bin/bash for user petr...
/dev/pts/1
13:53:18
#./shell.sh bash
Changing shell /bin/bash for user user...
Changing shell /bin/bash for user ivan...
Changing shell /bin/bash for user petr...
/dev/pts/0
13:53:33
#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
/dev/pts/1
13:53:33
#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
/dev/pts/0
13:53:59
#vi ./shell.sh
/dev/pts/1
13:53:59
#vi ./shell.sh
--- /tmp/l3-saved-14245.6413.11496	2017-11-29 14:54:07.746482476 +0200
+++ ./shell.sh	2017-11-29 14:57:51.706535636 +0200
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-shell="/bin/$1"
+shell="/bin/${1:-bash}"
 
 users=$(awk -F: '$3>=1000 && $3!=65534{print $1}' /etc/passwd | tr '\n' ' ')
 for user in $users
/dev/pts/0
13:57:51
#./shell.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: изменения не внесены
/dev/pts/1
13:57:51
#./shell.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: изменения не внесены
/dev/pts/0
13:57:55
#./shell.sh zhl
Changing shell /bin/zhl for user user...
Changing shell /bin/zhl for user ivan...
Changing shell /bin/zhl for user petr...
/dev/pts/1
13:57:55
#./shell.sh zhl
Changing shell /bin/zhl for user user...
Changing shell /bin/zhl for user ivan...
Changing shell /bin/zhl for user petr...
/dev/pts/0
13:58:13
#./shell.sh zsl
Changing shell /bin/zsl for user user...
Changing shell /bin/zsl for user ivan...
Changing shell /bin/zsl for user petr...
/dev/pts/1
13:58:13
#./shell.sh zsl
Changing shell /bin/zsl for user user...
Changing shell /bin/zsl for user ivan...
Changing shell /bin/zsl for user petr...
/dev/pts/0
13:58:27
#./shell.sh zsh
Changing shell /bin/zsh for user user...
Changing shell /bin/zsh for user ivan...
Changing shell /bin/zsh for user petr...
/dev/pts/1
13:58:27
#./shell.sh zsh
Changing shell /bin/zsh for user user...
Changing shell /bin/zsh for user ivan...
Changing shell /bin/zsh for user petr...
/dev/pts/0
13:58:30
#./shell.sh qrzacfasf
Changing shell /bin/qrzacfasf for user user...
Changing shell /bin/qrzacfasf for user ivan...
Changing shell /bin/qrzacfasf for user petr...
/dev/pts/1
13:58:30
#./shell.sh qrzacfasf
Changing shell /bin/qrzacfasf for user user...
Changing shell /bin/qrzacfasf for user ivan...
Changing shell /bin/qrzacfasf for user petr...
/dev/pts/0
13:58:49
#./shell.sh zsh
Changing shell /bin/zsh for user user...
Changing shell /bin/zsh for user ivan...
Changing shell /bin/zsh for user petr...
/dev/pts/1
13:58:49
#./shell.sh zsh
Changing shell /bin/zsh for user user...
Changing shell /bin/zsh for user ivan...
Changing shell /bin/zsh for user petr...
/dev/pts/0
13:59:26
#./shell.sh
Changing shell /bin/bash for user user...
Changing shell /bin/bash for user ivan...
Changing shell /bin/bash for user petr...
/dev/pts/1
13:59:26
#./shell.sh
Changing shell /bin/bash for user user...
Changing shell /bin/bash for user ivan...
Changing shell /bin/bash for user petr...
/dev/pts/0
13:59:34
#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
/dev/pts/1
13:59:34
#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
/dev/pts/0
13:59:56
#test 5 -eq 5

Файлы

  • /etc/passwd
  • /etc/shells
  • /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/shells
    >
    # /etc/shells: valid login shells
    /bin/sh
    /bin/dash
    /bin/bash
    /bin/rbash
    /usr/bin/screen
    /bin/zsh
    /usr/bin/zsh
    

    Статистика

    Время первой команды журнала13:05:08 2017-11-29
    Время последней команды журнала13:59:56 2017-11-29
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, % 5.94
    Процент синтаксически неверно набранных команд, %15.84
    Суммарное время работы с терминалом *, час 0.91
    Количество командных строк в единицу времени, команда/мин 1.84
    Частота использования команд
    shell.sh28|=========================| 25.23%
    vi14|============| 12.61%
    cat14|============| 12.61%
    set10|=========| 9.01%
    env6|=====| 5.41%
    ls6|=====| 5.41%
    egrep4|===| 3.60%
    ~4|===| 3.60%
    dash2|=| 1.80%
    chmod2|=| 1.80%
    shells2|=| 1.80%
    >2|=| 1.80%
    b=202|=| 1.80%
    export2|=| 1.80%
    bash2|=| 1.80%
    less2|=| 1.80%
    apt-get2|=| 1.80%
    shels2|=| 1.80%
    bush2|=| 1.80%
    les2|=| 1.80%
    test1|| 0.90%
    ____
    *) Интервалы неактивности длительностью 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$