/l3/users/27-3-2017/NT-Ladm/debian5.net.nt/root :1 :2 :3 :4 |
|
#$a
![]() l3script: 1: команда не найдена |
#echo $a
1 |
#bash
root@debian5:~# pstree init─┬─acpid ├─cron ├─exim4 ├─6*[getty] ├─2*[l3-agent] ├─rsyslogd───3*[{rsyslogd}] ├─sshd─┬─sshd───bash───script───script───l3script───bash───pstree │ └─sshd───sshd───bash └─udevd root@debian5:~# exit exit |
#echo $a
1 |
#export a
|
#bash
root@debian5:~# echo $a 1 root@debian5:~# exit exit |
#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' ... MACHTYPE=x86_64-pc-linux-gnu MAIL=/var/mail/root MAILCHECK=60 OLDPWD=/ OPTERR=1 OPTIND=1 OSTYPE=linux-gnu PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PIPESTATUS=([0]="0") PPID=7476 |
#echo "Hello $LOGNAME"
Hello root |
#mkdir scripts
|
#cd scripts/
|
#vi shell.sh
![]() --- /dev/null 2017-03-24 16:46:59.531999955 +0200 +++ shell.sh 2017-03-29 14:22:24.969108979 +0300 @@ -0,0 +1,4 @@ +#!/bin/bash + +users='awk -F: '$3>=1000&&$3!=65534{print $1}' | tr "\n" " "' +echo $users |
#chmod u+x shell.sh
|
#ls -l
итого 4 -rwxr--r-- 1 root root 87 Мар 29 14:22 shell.sh |
#./shell.sh
./shell.sh: line 3: !=65534{print: команда не найдена awk -F: |
#vi shell.sh
--- /tmp/l3-saved-7477.14979.6612 2017-03-29 14:26:17.733119866 +0300 +++ shell.sh 2017-03-29 14:27:16.721120301 +0300 @@ -1,4 +1,4 @@ #!/bin/bash -users='awk -F: '$3>=1000&&$3!=65534{print $1}' | tr "\n" " "' +users='awk -F: '$3>=1000&&$3!=65534{print $1}' | tr "\n" " " /etc/passwd' echo $users |
#./shell.sh
./shell.sh: line 3: !=65534{print: команда не найдена awk -F: |
#vi shell.sh
--- /tmp/l3-saved-7477.16863.16538 2017-03-29 14:27:39.273117356 +0300 +++ shell.sh 2017-03-29 14:28:58.609099529 +0300 @@ -1,4 +1,4 @@ #!/bin/bash -users='awk -F: '$3>=1000&&$3!=65534{print $1}' | tr "\n" " " /etc/passwd' +users='awk -F: '$3>=1000&&$3!=65534{print $1}' /etc/passwd | tr "\n" " "' echo $users |
#./shell.sh
./shell.sh: line 3: !=65534{print: команда не найдена awk -F: |
#./shell.sh
./shell.sh: line 3: !=65534{print: команда не найдена awk -F: |
#vi shell.sh
|
#./shell.sh
user ivan petr |
#useradd anna -m
|
#./shell.sh
user ivan petr anna |
#vi shell.sh
--- /tmp/l3-saved-7477.2568.5806 2017-03-29 14:34:07.053107369 +0300 +++ shell.sh 2017-03-29 14:37:38.449090034 +0300 @@ -1,4 +1,8 @@ #!/bin/bash users=`awk -F: '$3>=1000&&$3!=65534{print $1}' /etc/passwd | tr "\n" " "` -echo $users +for user in $users + do + echo "Changing shell for user $user ..." + usermod -s /bin/sh $user + done |
#./shell.sh
Changing shell for user user ... Changing shell for user ivan ... Changing shell for user petr ... Changing shell for user anna ... usermod: изменения не внесены |
#vi shell.sh
--- /tmp/l3-saved-7477.8139.30897 2017-03-29 14:38:58.849109249 +0300 +++ shell.sh 2017-03-29 14:40:49.025101677 +0300 @@ -4,5 +4,5 @@ for user in $users do echo "Changing shell for user $user ..." - usermod -s /bin/sh $user + usermod -s /bin/$1 $user done |
#./shell.sh bash
Changing shell for user user ... Changing shell for user ivan ... Changing shell for user petr ... Changing shell for user anna ... |
#finger petr\
![]() > ^C |
#finger petr
Login: petr Name: Directory: /home/petr Shell: /bin/bash Last login Mon Mar 27 11:05 (EEST) on pts/3 from 192.168.16.147 No mail. No Plan. |
#./shell.sh sh
Changing shell for user user ... Changing shell for user ivan ... Changing shell for user petr ... Changing shell for user anna ... |
#finger petr
Login: petr Name: Directory: /home/petr Shell: /bin/sh Last login Mon Mar 27 11:05 (EEST) on pts/3 from 192.168.16.147 No mail. No Plan. |
#vi shell.sh
--- /tmp/l3-saved-7477.20675.14535 2017-03-29 14:43:42.009117556 +0300 +++ shell.sh 2017-03-29 14:44:58.073107228 +0300 @@ -4,5 +4,5 @@ for user in $users do echo "Changing shell for user $user ..." - usermod -s /bin/$1 $user + usermod -s /bin/${1:-bash} $user done |
#./shell.sh
Changing shell for user user ... Changing shell for user ivan ... Changing shell for user petr ... Changing shell for user anna ... |
#finger petr
Login: petr Name: Directory: /home/petr Shell: /bin/bash Last login Mon Mar 27 11:05 (EEST) on pts/3 from 192.168.16.147 No mail. No Plan. |
#./shell.sh sh
Changing shell for user user ... Changing shell for user ivan ... Changing shell for user petr ... Changing shell for user anna ... |
#finger petr
Login: petr Name: Directory: /home/petr Shell: /bin/sh Last login Mon Mar 27 11:05 (EEST) on pts/3 from 192.168.16.147 No mail. No Plan. |
#vi shell.sh
--- /tmp/l3-saved-7477.8450.14406 2017-03-29 14:48:19.697106219 +0300 +++ shell.sh 2017-03-29 14:54:49.193111391 +0300 @@ -1,5 +1,9 @@ #!/bin/bash +if [ $# -gt 1 ] + then + exit 2 + fi users=`awk -F: '$3>=1000&&$3!=65534{print $1}' /etc/passwd | tr "\n" " "` for user in $users do |
#./shell.sh
Changing shell for user user ... Changing shell for user ivan ... Changing shell for user petr ... Changing shell for user anna ... |
#./shell.sh sh
Changing shell for user user ... Changing shell for user ivan ... Changing shell for user petr ... Changing shell for user anna ... |
#./shell.sh sh re
![]() |
#echo $?
2 |
#echo $0
l3script |
#echo $#
0 |
#cd shell.sh
![]() =1000 shell.sh |
#vi proc.sh
![]() --- /dev/null 2017-03-24 16:46:59.531999955 +0200 +++ proc.sh 2017-03-29 15:47:11.745109718 +0300 @@ -0,0 +1,9 @@ +#!/bin/bash + +i=1 +while [ $i -lt 1000000 ] + do + echo $i > /dev/`who | awk '$1~/ivan/{print $2}'` + clear > /dev/`who | awk '$1~/ivan/{print $2}'` + i=$ [$i+1] + done |
#./proc.sh
![]() l3script: ./proc.sh: Отказано в доступе |
#chmod u+x proc.sh
|
#./proc.sh
![]() ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ... ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ^C |
#./proc.sh
![]() ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ... ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ./proc.sh: line 8: [1+1]: команда не найдена ^C |
#vi proc.sh
--- /tmp/l3-saved-7477.19366.6843 2017-03-29 15:48:47.821107819 +0300 +++ proc.sh 2017-03-29 15:49:04.649113793 +0300 @@ -5,5 +5,5 @@ do echo $i > /dev/`who | awk '$1~/ivan/{print $2}'` clear > /dev/`who | awk '$1~/ivan/{print $2}'` - i=$ [$i+1] + i=$[$i+1] done |
#vi proc.sh
|
#~
![]() ^C |
#./shell.sh
Changing shell for user user ... Changing shell for user ivan ... Changing shell for user petr ... Changing shell for user anna ... |
#test -w /etc/passwd || \
> echo "We not rigth to change file /etc/passwd" |
#test -w /etc/passwd || echo "We not rigth to change file /etc/passwd"
|
#test -w /etc/passwd || echo "We not rigth to change file /etc/passwd"
|
#test -w /etc/passwd || \
> echo "We not rigth to change file /etc/passwd" |
#echo "OS?"; \
> read FAV_OS ; [ "$FAV_OS" == "BSD" ] || echo "Strange" OS? BSD |
#echo "OS?"; read FAV_OS ; [ "$FAV_OS" == "BSD" ] || echo "Strange"
OS? 1 Strange |
#A=0
|
#while [ $A -lt 10 ]
> do > A=$((A+1)) > echo $A > done 1 2 3 4 5 6 7 8 9 10 |
#for file in /etc/*
> do > [ -r $file ] || echo $file > done |
#for file in /etc/*; do [ -r $file ] || echo $file; done
|
#id -u ivan
1001 |
#id ivan
uid=1001(ivan) gid=1001(ivan) группы=1001(ivan) |
#chfn ivan
Изменение информации о пользователе ivan Введите новое значение или нажмите ENTER для выбора значения по умолчанию Полное имя []: Ivan Ivanov Номер комнаты []: 9D Рабочий телефон []: 111 Домашний телефон []: 111-11-111 Другое []: |
#id ivan
uid=1001(ivan) gid=1001(ivan) группы=1001(ivan) |
#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 ... 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 Ivanov,9D,111,111-11-111:/home/ivan:/bin/bash petr:x:1002:1002::/home/petr:/bin/bash anna:x:1003:1003::/home/anna:/bin/bash |
#finger ivan
Login: ivan Name: Ivan Ivanov Directory: /home/ivan Shell: /bin/bash Office: 9D, 111 Home Phone: 111-11-111 Last login Wed Mar 29 15:46 (EEST) on pts/1 from 192.168.16.147 No mail. No Plan. |
#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::: ... 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$uX3wKqbZ$rSTWFk0IOItlBiEO359iSZnNhie.BzK8LU/02VvRgFcVoT0tRMYaaEqUrwZnIEe8PIX06hnZ3JdL9z1g5ivsR/:17252:0:99999:7::: petr:$6$g6yR6VJ7$bmo40qDX8BRNghm/N/abkut1uTK7OA6W5n0xRP5ilJA83S7CUd9cf1htF3hWrSbLfUVhiFAEC2dvfyKDClx3s0:17252:0:99999:7::: anna:!:17254:0:99999:7::: |
#chang -l ivan
![]() l3script: chang: команда не найдена |
#chage -l ivan
Последний раз пароль был изменён : Мар 27, 2017 Срок действия пароля истекает : никогда Пароль будет деактивирован через : никогда Срок действия учётной записи истекает : никогда Минимальное количество дней между сменой пароля : 0 Максимальное количество дней между сменой пароля : 99999 Количество дней с предупреждением перед деактивацией пароля : 7 |
#сфcat /etc/d
![]() debconf.conf default/ dhcp/ discover-modprobe.conf debian_version deluser.conf discover.conf.d/ dpkg/ |
#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 |
#cat /etc/login.defs
# # /etc/login.defs - Configuration control definitions for the login package. # # Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. # If unspecified, some arbitrary (and possibly incorrect) value will # be assumed. All other items are optional - if not specified then # the described action or option will be inhibited. # # Comment lines (lines beginning with "#") and blank lines are ignored. # ... # These options are no more handled by shadow. # # # # Shadow utilities will display a warning if they # # still appear. # # # ################################################### # CLOSE_SESSIONS # LOGIN_STRING # NO_PASSWORD_CONSOLE # QMAIL_DIR |
#groupadd developers
|
#u
![]() ucf unicode_start updatedb update-rc.d ucfq unicode_stop updatedb.findutils update-usbids ucfr uniq update-exim4.conf update-xmlcatalog udevadm unix_chkpwd update-exim4.conf.template upgrade-from-grub-legacy udevd unix_update update-exim4defaults uptime udpblast unlink update-grub usb-devices ul unlzma update-grub2 usbhid-dump ulimit unset update-info-dir useradd umask unshare update-initramfs userdel umount until update-locale usermod unalias unxz update-mime users uname update-alternatives update-passwd uncompress update-ca-certificates update-pciids unexpand update-catalog update-python-modules |
#usermod -G developers ivan
|
#id ivan
uid=1001(ivan) gid=1001(ivan) группы=1001(ivan),1004(developers) |
#gpasswd -a petr developers
Добавление пользователя petr в группу developers |
#id petro
![]() id: petro: Такого пользователя нет |
#id petr
uid=1002(petr) gid=1002(petr) группы=1002(petr),1004(developers) |
#gpasswd -A anna developers
|
#passwd -l ivan
passwd: информация об истечении срока действия пароля изменена. |
#passwd -u ivan
passwd: информация об истечении срока действия пароля изменена. |
#cd /opt/
|
#mkdir public
|
#ls -l
итого 4 drwxr-xr-x 2 root root 4096 Мар 30 11:46 public |
#chmod
![]() chmod: пропущен операнд Попробуйте «chmod --help» для получения более подробного описания. |
#chmod o+w
![]() chmod: пропущен операнд после «o+w» Попробуйте «chmod --help» для получения более подробного описания. |
#chmod o+w public/
|
#ls -l
итого 4 drwxr-xrwx 2 root root 4096 Мар 30 11:46 public |
#> public/f1
|
#chmod +t public/
|
#ls -l
итого 4 drwxr-xrwt 2 root root 4096 Мар 30 11:52 public |
# 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
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: anna:x:1003: developers:x:1004:
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:!:: anna:!:: developers:!::ivan,petr
# # /etc/login.defs - Configuration control definitions for the login package. # # Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. # If unspecified, some arbitrary (and possibly incorrect) value will # be assumed. All other items are optional - if not specified then # the described action or option will be inhibited. # # Comment lines (lines beginning with "#") and blank lines are ignored. # # Modified for Linux. --marekm # REQUIRED for useradd/userdel/usermod # Directory where mailboxes reside, _or_ name of file, relative to the # home directory. If you _do_ define MAIL_DIR and MAIL_FILE, # MAIL_DIR takes precedence. # # Essentially: # - MAIL_DIR defines the location of users mail spool files # (for mbox use) by appending the username to MAIL_DIR as defined # below. # - MAIL_FILE defines the location of the users mail spool files as the # fully-qualified filename obtained by prepending the user home # directory before $MAIL_FILE # # NOTE: This is no more used for setting up users MAIL environment variable # which is, starting from shadow 4.0.12-1 in Debian, entirely the # job of the pam_mail PAM modules # See default PAM configuration files provided for # login, su, etc. # # This is a temporary situation: setting these variables will soon # move to /etc/default/useradd and the variables will then be # no more supported MAIL_DIR /var/mail #MAIL_FILE .mail # # Enable logging and display of /var/log/faillog login failure info. # This option conflicts with the pam_tally PAM module. # FAILLOG_ENAB yes # # Enable display of unknown usernames when login failures are recorded. # # WARNING: Unknown usernames may become world readable. # See #290803 and #298773 for details about how this could become a security # concern LOG_UNKFAIL_ENAB no # # Enable logging of successful logins # LOG_OK_LOGINS no # # Enable "syslog" logging of su activity - in addition to sulog file logging. # SYSLOG_SG_ENAB does the same for newgrp and sg. # SYSLOG_SU_ENAB yes SYSLOG_SG_ENAB yes # # If defined, all su activity is logged to this file. # #SULOG_FILE /var/log/sulog # # If defined, file which maps tty line to TERM environment parameter. # Each line of the file is in a format something like "vt100 tty01". # #TTYTYPE_FILE /etc/ttytype # # If defined, login failures will be logged here in a utmp format # last, when invoked as lastb, will read /var/log/btmp, so... # FTMP_FILE /var/log/btmp # # If defined, the command name to display when running "su -". For # example, if this is defined as "su" then a "ps" will display the # command is "-su". If not defined, then "ps" would display the # name of the shell actually being run, e.g. something like "-sh". # SU_NAME su # # If defined, file which inhibits all the usual chatter during the login # sequence. If a full pathname, then hushed mode will be enabled if the # user's name or shell are found in the file. If not a full pathname, then # hushed mode will be enabled if the file exists in the user's home directory. # HUSHLOGIN_FILE .hushlogin #HUSHLOGIN_FILE /etc/hushlogins # # *REQUIRED* The default PATH settings, for superuser and normal users. # # (they are minimal, add the rest in the shell startup files) ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games # # Terminal permissions # # TTYGROUP Login tty will be assigned this group ownership. # TTYPERM Login tty will be set to this permission. # # If you have a "write" program which is "setgid" to a special group # which owns the terminals, define TTYGROUP to the group number and # TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign # TTYPERM to either 622 or 600. # # In Debian /usr/bin/bsd-write or similar programs are setgid tty # However, the default and recommended value for TTYPERM is still 0600 # to not allow anyone to write to anyone else console or terminal # Users can still allow other people to write them by issuing # the "mesg y" command. TTYGROUP tty TTYPERM 0600 # # Login configuration initializations: # # ERASECHAR Terminal ERASE character ('\010' = backspace). # KILLCHAR Terminal KILL character ('\025' = CTRL/U). # UMASK Default "umask" value. # # The ERASECHAR and KILLCHAR are used only on System V machines. # # UMASK is the default umask value for pam_umask and is used by # useradd and newusers to set the mode of the new home directories. # 022 is the "historical" value in Debian for UMASK # 027, or even 077, could be considered better for privacy # There is no One True Answer here : each sysadmin must make up his/her # mind. # # Prefix these values with "0" to get octal, "0x" to get hexadecimal. # ERASECHAR 0177 KILLCHAR 025 UMASK 022 # # Password aging controls: # # PASS_MAX_DAYS Maximum number of days a password may be used. # PASS_MIN_DAYS Minimum number of days allowed between password changes. # PASS_WARN_AGE Number of days warning given before a password expires. # PASS_MAX_DAYS 99999 PASS_MIN_DAYS 0 PASS_WARN_AGE 7 # # Min/max values for automatic uid selection in useradd # UID_MIN 1000 UID_MAX 60000 # System accounts #SYS_UID_MIN 100 #SYS_UID_MAX 999 # # Min/max values for automatic gid selection in groupadd # GID_MIN 1000 GID_MAX 60000 # System accounts #SYS_GID_MIN 100 #SYS_GID_MAX 999 # # Max number of login retries if password is bad. This will most likely be # overriden by PAM, since the default pam_unix module has it's own built # in of 3 retries. However, this is a safe fallback in case you are using # an authentication module that does not enforce PAM_MAXTRIES. # LOGIN_RETRIES 5 # # Max time in seconds for login # LOGIN_TIMEOUT 60 # # Which fields may be changed by regular users using chfn - use # any combination of letters "frwh" (full name, room number, work # phone, home phone). If not defined, no changes are allowed. # For backward compatibility, "yes" = "rwh" and "no" = "frwh". # CHFN_RESTRICT rwh # # Should login be allowed if we can't cd to the home directory? # Default in no. # DEFAULT_HOME yes # # If defined, this command is run when removing a user. # It should remove any at/cron/print jobs etc. owned by # the user to be removed (passed as the first argument). # #USERDEL_CMD /usr/sbin/userdel_local # # If set to yes, userdel will remove the user´s group if it contains no # more members, and useradd will create by default a group with the name # of the user. # # Other former uses of this variable such as setting the umask when # user==primary group are not used in PAM environments, such as Debian # USERGROUPS_ENAB yes # # Instead of the real user shell, the program specified by this parameter # will be launched, although its visible name (argv[0]) will be the shell's. # The program may do whatever it wants (logging, additional authentification, # banner, ...) before running the actual shell. # # FAKE_SHELL /bin/fakeshell # # If defined, either full pathname of a file containing device names or # a ":" delimited list of device names. Root logins will be allowed only # upon these devices. # # This variable is used by login and su. # #CONSOLE /etc/consoles #CONSOLE console:tty01:tty02:tty03:tty04 # # List of groups to add to the user's supplementary group set # when logging in on the console (as determined by the CONSOLE # setting). Default is none. # # Use with caution - it is possible for users to gain permanent # access to these groups, even when not logged in on the console. # How to do it is left as an exercise for the reader... # # This variable is used by login and su. # #CONSOLE_GROUPS floppy:audio:cdrom # # If set to "yes", new passwords will be encrypted using the MD5-based # algorithm compatible with the one used by recent releases of FreeBSD. # It supports passwords of unlimited length and longer salt strings. # Set to "no" if you need to copy encrypted passwords to other systems # which don't understand the new algorithm. Default is "no". # # This variable is deprecated. You should use ENCRYPT_METHOD. # #MD5_CRYPT_ENAB no # # If set to MD5 , MD5-based algorithm will be used for encrypting password # If set to SHA256, SHA256-based algorithm will be used for encrypting password # If set to SHA512, SHA512-based algorithm will be used for encrypting password # If set to DES, DES-based algorithm will be used for encrypting password (default) # Overrides the MD5_CRYPT_ENAB option # # Note: It is recommended to use a value consistent with # the PAM modules configuration. # ENCRYPT_METHOD SHA512 # # Only used if ENCRYPT_METHOD is set to SHA256 or SHA512. # # Define the number of SHA rounds. # With a lot of rounds, it is more difficult to brute forcing the password. # But note also that it more CPU resources will be needed to authenticate # users. # # If not specified, the libc will choose the default number of rounds (5000). # The values must be inside the 1000-999999999 range. # If only one of the MIN or MAX values is set, then this value will be used. # If MIN > MAX, the highest value will be used. # # SHA_CRYPT_MIN_ROUNDS 5000 # SHA_CRYPT_MAX_ROUNDS 5000 ################# OBSOLETED BY PAM ############## # # # These options are now handled by PAM. Please # # edit the appropriate file in /etc/pam.d/ to # # enable the equivelants of them. # ############### #MOTD_FILE #DIALUPS_CHECK_ENAB #LASTLOG_ENAB #MAIL_CHECK_ENAB #OBSCURE_CHECKS_ENAB #PORTTIME_CHECKS_ENAB #SU_WHEEL_ONLY #CRACKLIB_DICTPATH #PASS_CHANGE_TRIES #PASS_ALWAYS_WARN #ENVIRON_FILE #NOLOGINS_FILE #ISSUE_FILE #PASS_MIN_LEN #PASS_MAX_LEN #ULIMIT #ENV_HZ #CHFN_AUTH #CHSH_AUTH #FAIL_DELAY ################# OBSOLETED ####################### # # # These options are no more handled by shadow. # # # # Shadow utilities will display a warning if they # # still appear. # # # ################################################### # CLOSE_SESSIONS # LOGIN_STRING # NO_PASSWORD_CONSOLE # QMAIL_DIR
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 Ivanov,9D,111,111-11-111:/home/ivan:/bin/bash petr:x:1002:1002::/home/petr:/bin/bash anna:x:1003:1003::/home/anna:/bin/bash
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$uX3wKqbZ$rSTWFk0IOItlBiEO359iSZnNhie.BzK8LU/02VvRgFcVoT0tRMYaaEqUrwZnIEe8PIX06hnZ3JdL9z1g5ivsR/:17252:0:99999:7::: petr:$6$g6yR6VJ7$bmo40qDX8BRNghm/N/abkut1uTK7OA6W5n0xRP5ilJA83S7CUd9cf1htF3hWrSbLfUVhiFAEC2dvfyKDClx3s0:17252:0:99999:7::: anna:!:17254:0:99999:7:::
Время первой команды журнала | 12:53:39 2017- 3-29 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Время последней команды журнала | 10:52:37 2017- 3-30 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в журнале | 101 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент команд с ненулевым кодом завершения, % | 6.93 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент синтаксически неверно набранных команд, % | 2.97 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Суммарное время работы с терминалом *, час | 2.54 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в единицу времени, команда/мин | 0.66 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Частота использования команд |
|
В журнал автоматически попадают все команды, данные в любом терминале системы.
Для того чтобы убедиться, что журнал на текущем терминале ведётся, и команды записываются, дайте команду w. В поле WHAT, соответствующем текущему терминалу, должна быть указана программа script.
Команды, при наборе которых были допущены синтаксические ошибки, выводятся перечёркнутым текстом:
$ l s-l bash: l: command not found |
Если код завершения команды равен нулю, команда была выполнена без ошибок. Команды, код завершения которых отличен от нуля, выделяются цветом.
$ test 5 -lt 4 |
Команды, ход выполнения которых был прерван пользователем, выделяются цветом.
$ 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 |
Команды, выполненные с привилегиями суперпользователя, выделяются слева красной чертой.
# id uid=0(root) gid=0(root) Gruppen=0(root) |
Изменения, внесённые в текстовый файл с помощью редактора, запоминаются и показываются в журнале в формате ed. Строки, начинающиеся символом "<", удалены, а строки, начинающиеся символом ">" -- добавлены.
$ vi ~/.bashrc
|
Для того чтобы изменить файл в соответствии с показанными в диффшоте изменениями, можно воспользоваться командой patch. Нужно скопировать изменения, запустить программу patch, указав в качестве её аргумента файл, к которому применяются изменения, и всавить скопированный текст:
$ patch ~/.bashrc |
Для того чтобы получить краткую справочную информацию о команде, нужно подвести к ней мышь. Во всплывающей подсказке появится краткое описание команды.
Если справочная информация о команде есть, команда выделяется голубым фоном, например: vi. Если справочная информация отсутствует, команда выделяется розовым фоном, например: notepad.exe. Справочная информация может отсутствовать в том случае, если (1) команда введена неверно; (2) если распознавание команды LiLaLo выполнено неверно; (3) если информация о команде неизвестна LiLaLo. Последнее возможно для редких команд.
Большие, в особенности многострочные, всплывающие подсказки лучше всего показываются браузерами KDE Konqueror, Apple Safari и Microsoft Internet Explorer. В браузерах Mozilla и Firefox они отображаются не полностью, а вместо перевода строки выводится специальный символ.
Время ввода команды, показанное в журнале, соответствует времени начала ввода командной строки, которое равно тому моменту, когда на терминале появилось приглашение интерпретатора
Имя терминала, на котором была введена команда, показано в специальном блоке. Этот блок показывается только в том случае, если терминал текущей команды отличается от терминала предыдущей.
Вывод не интересующих вас в настоящий момент элементов журнала, таких как время, имя терминала и других, можно отключить. Для этого нужно воспользоваться формой управления журналом вверху страницы.
Небольшие комментарии к командам можно вставлять прямо из командной строки. Комментарий вводится прямо в командную строку, после символов #^ или #v. Символы ^ и v показывают направление выбора команды, к которой относится комментарий: ^ - к предыдущей, v - к следующей. Например, если в командной строке было введено:
$ whoami
user
$ #^ Интересно, кто я?в журнале это будет выглядеть так:
$ whoami
user
Интересно, кто я? |
Если комментарий содержит несколько строк, его можно вставить в журнал следующим образом:
$ whoami
user
$ cat > /dev/null #^ Интересно, кто я?
Программа whoami выводит имя пользователя, под которым мы зарегистрировались в системе. - Она не может ответить на вопрос о нашем назначении в этом мире.В журнале это будет выглядеть так:
$ whoami user
|
Комментарии, не относящиеся непосредственно ни к какой из команд, добавляются точно таким же способом, только вместо симолов #^ или #v нужно использовать символы #=
1 2 3 4Группы команд, выполненных на разных терминалах, разделяются специальной линией. Под этой линией в правом углу показано имя терминала, на котором выполнялись команды. Для того чтобы посмотреть команды только одного сенса, нужно щёкнуть по этому названию.
LiLaLo (L3) расшифровывается как Live Lab Log.
Программа разработана для повышения эффективности обучения Unix/Linux-системам.
(c) Игорь Чубин, 2004-2008