рд▓рд┐рдирдХреНрд╕ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛рд░реНрдпреЛрдВ (рдСрдбрд┐рдЯ) рдХреЛ рд▓реЙрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░реАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдЙрджреНрджреЗрд╢реНрдп:


рд▓рд┐рдирдХреНрд╕ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд░рд┐рдпрд╛рдУрдВ (рдСрдбрд┐рдЯ) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░реЗрдВ, рдЕрд░реНрдерд╛рддреН рд╡реЗ рдЬреЛ рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдЬрд╛рдирдХрд╛рд░реАред

рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди:


рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдХреНрд░реАрди

рдЖрд╡рд╢реНрдпрдХ рд╢рд░реНрддреЗрдВ:


  1. рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдкреВрд░реНрдг рд▓реЙрдЧрд┐рдВрдЧ, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд╕реВрдЪрдирд╛ рдХрд╛ рдЙрддреНрдкрд╛рджрди рд╢рд╛рдорд┐рд▓ рд╣реИ, рддрд╛рдХрд┐ рдЖрдк рдпрд╣ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░ рд╕рдХреЗрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдпрд╣ рдпрд╛ рдЙрд╕ рдирд┐рд░реНрдгрдп рдХреЛ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛
  2. рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рдмрд┐рдирд╛
  3. рдЪреВрдВрдХрд┐ рдЖрдкрдиреЗ рд╕реНрдХреНрд░реАрди рдХреЛ рдЪреБрдирд╛ рд╣реИ, рд╣рдо рдЗрд╕рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдзрд┐рдХрддрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗ (рдирдИ рд╡рд┐рдВрдбреЛ рдЦреЛрд▓рдирд╛, ^ a + d рд╕реЗ рдмрдВрдж рдХрд░рдирд╛, рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ рдЕрдиреНрдп рд╕реБрд╡рд┐рдзрд╛рдПрдВ рдЫреЛрдбрд╝рдирд╛)
  4. рдЕрдзрд┐рдХрддрдо рдкреНрд░рдпреЛрдЬреНрдп - рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдИ рдЕрд╕рдВрдЧрддрд┐ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП
  5. рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬреЛ рд╕реНрдХреНрд░реАрди рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдХрд╛рдо рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдкрд░рд┐рдЪрд┐рдд рдХрд░реЗрдВ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдХрдорд╛рдВрдб рд╢реЗрд▓ (рд╢реЗрд▓) рдХреЗ рдХрд░реАрдм рдмрдирд╛рдПрдВ



рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдк:


1) Habr├й рдкрд░ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдк ред рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдмрд┐рдВрджреБ рд╣реИрдВ:

2) рд╡рд┐рдХрд▓реНрдк рдпрд╣рд╛рдБ рднреА рд╕реБрдЭрд╛рдП рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпреЗ рдЕрдзрд┐рдХ рдХрдЪреНрдЪреЗ рдмрд┐рд▓реНрдЯ рд╣реИрдВ

рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:


рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░реАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ 2 рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:

рд▓рд┐рдВрдХ рд╕реЗ рдЙрджреНрдзрд░рдгреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ
рдХреБрдЫ рдХрд╛рд░рдг
... рдпрд╣ рдЙрди рдкреНрд░реЛрдЧреНрд░рд╛рдореЛрдВ рдХреЛ рддреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП / etc / passwd рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд▓реЙрдЧрд┐рди рд╢реЗрд▓ рдЪрд▓рд╛рддреЗ рд╣реИрдВ ...
... рдлрд┐рд░ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдкрдиреЗ рдЦрд╛рддреЗ рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЗ sysadmin рдореЗрдВ рд╕рдВрднрд╡рддрдГ рд╕реНрдХреНрд░реАрди рдирд╣реАрдВ рд╣реИ / etc / рдЧреЛрд▓реЗ ...


рд╣рдо рд╕реНрдХреНрд░реАрди рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЬрдм рдЖрдк рдмреИрд╢ рд╢реЗрд▓ рдХреЛ рдЪрд▓рд╛рдПрдВ (рдЖрдЦрд┐рд░рдХрд╛рд░, рдЖрдкрдХреЗ рдкрд╛рд╕ рдмреИрд╢, рд░рд╛рдЗрдЯ рд╣реИ?), рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕ рдлрд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд▓реЙрдЧрд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХреЗ рд╕рд╛рде рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдХреНрд░реАрди рдореЗрдВ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред рдЬрдм рдЖрдк рд╕реНрдХреНрд░реАрди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╣реИрдВ, рддреЛ рд╕рддреНрд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:
vi /usr/local/bin/get_in.sh
 #!/bin/sh SCREEN=/usr/bin/screen KILL=/bin/kill ## Check if we are already in screen ($STY is set) if [ -z "$STY" ]; then $SCREEN -LARR -S Shared -c /etc/screenrc ## Force SHELL close on exit - we don't want to allow users to escape logging outside screen $KILL -SIGHUP $PPID fi 

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ:
-L - рдкреВрд░реЗ рд▓реЙрдЧ рдХреЛ рдлрд╛рдЗрд▓ рдореЗрдВ рднреЗрдЬреЗрдВ (рдЬрд╣рд╛рдБ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ - рдиреАрдЪреЗ рд▓реЙрдЧ / рдлрд╛рдЗрд▓ / рд╕реНрдХреНрд░реАрди / рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢ рджреЗрдЦреЗрдВ)
-рдПрдХ - рд╡рд░реНрддрдорд╛рди рдЯрд░реНрдорд┐рдирд▓ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡рд┐рдВрдбреЛ рдЖрдХрд╛рд░ред рдпрд╣рд╛рдВ рд╕реЗ рд▓реЗ рдЧрдП ред
-RR - рд╕рддреНрд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдФрд░, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЗрд╕реЗ рдЕрд▓рдЧ рдХрд░реЗрдВ рдпрд╛ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдПрдВред рдпрджрд┐ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ рддреЛ рдкрд╣рд▓реЗ рд╕рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред ^ A + d рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЙрд╕реА рд╕рддреНрд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рджрд░реНрдЬ рдХрд░рдиреЗ рдкрд░ рдЦреБрд▓ рдЬрд╛рдПрдЧрд╛ред
-c - рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд▓реЙрдЧрд┐рдВрдЧ рдФрд░ рдкреБрди: рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ~ / .rcrc рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдирд╛ред
-рдПрд╕ - рд╕рддреНрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрдХреВрд▓ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдПрдХ рд╣реА рдирд╛рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдмрдирд╛рддреЗ рд╣реИрдВ:
chmod 0755 /usr/local/bin/get_in.sh

рд╣рдо рд╕рднреА рдХреЛ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, /etc/bash.bashrc рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рд▓рд╛рдЗрди рдЬреЛрдбрд╝реЗрдВ:
/usr/local/bin/get_in.sh

рдлрд╝рд╛рдЗрд▓ рдХреЛ рдареАрдХ рдХрд░реЗрдВ / etc / screenrc:

 ## ,          .    (on),   . startup_message off # default: on ##    -   ""   shell vbell off ##      4096.    - 100. defscrollback 4096 # default: 100 ##    (shell),       .     $SHELL.      '-' ,       login-shell. defshell -/bin/bash ##      ^a+[ . crlf off # default: off ##      . caption always "%{= kg} %H | %{kc}%?%-w%?%{kY}%n*%f %t%?(%u)%?%{= kc}%?%+w%? %=|%{kW} %l %{kw}| %{kc}%{-b}%D, %m/%d/%Y | %{kW}%{+b}%c %{wk}" ## Set terminal cap info termcapinfo xterm* 'hs:ts=\E]0;:fs=\007:ds=\E]0;\007' hardstatus off ##        screen (^a + H) bind H ##     - logfile /var/log/screen/$USER@%H-%Y%m%d-%c:%s.log ## By default, screen uses an 8-color terminal emulator. Use the following line to enable more colors, which is useful if you are using a more-capable terminal emulator: term screen-256color ##       - logtstamp on 


рд▓реЙрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛:
 mkdir /var/log/screen 

 chmod 0777 /var/log/screen 

рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╣рдо рдпрд╣ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╕рднреА рдХрдорд╛рдВрдб рдлреЙрд░реНрдо рдХреА рд▓реЙрдЧ рдлрд╛рдЗрд▓ рдореЗрдВ рд▓реЙрдЧ рдЗрди рд╣реЛрдВрдЧреЗ:
/var/log/screen/user@server-20130716-19:52:34.log


рдбреЗрдмрд┐рдпрди рдореЗрдВ, рд╕реНрдХреНрд░реАрди рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдкреВрд░рд╛ рд╣реЛрдиреЗ (bash_completion) рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ /etc/bash.bashrc рдореЗрдВ рдЕрдирд▓реЙрдХреНрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
 # enable bash completion in interactive shells if [ -f /etc/bash_completion ] && ! shopt -oq posix; then . /etc/bash_completion fi 


рдкреНрд░рд┐рдп 1ex, ssh рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ @ рд╣реЛрд╕реНрдЯ "ls -l" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рддрд╛рдХрд┐ ssh рдХреЗ рд▓рд┐рдП рдЖрд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдмреИрд╢ рдореЛрдб рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд┐рдП рдмрд┐рдирд╛ рдХрдорд╛рдВрдб рд▓реЙрдЧ рдСрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП:
рдореЗрдВ / etc / ssh / sshd_config рдЖрд╡рд░рдг рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:
 ForceCommand /etc/ssh/hook.sh 

рдлрд┐рд░ рдЦреБрдж рд╣реА рд░реИрдкрд░ /etc/ssh/hook.sh рдмрдирд╛рдПрдВ:
 #!/bin/sh if [ ! -z "${SSH_ORIGINAL_COMMAND}" ]; then echo "User "${USER}" remotely runs a command: ${SSH_ORIGINAL_COMMAND}" >> /var/log/screen/$USER@`hostname`-`date +%Y%m%d-%H:%M:%S`-command.log bash -c "$SSH_ORIGINAL_COMMAND" else cat /etc/motd ${SHELL} fi 

рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдмрдирд╛рдирд╛ рди рднреВрд▓реЗрдВ:
 chmod +x /etc/ssh/hook.sh 

рдЗрд╕ рддрд░рд╣, рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдРрд╕реЗ рд╕рднреА рдХрдорд╛рдВрдб (рдФрд░ рдХреЗрд╡рд▓ рдХрдорд╛рдВрдб - рдмрд┐рдирд╛ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЬреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ) рдПрдХ рд╣реА рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпрдп "-рдХрдорд╛рдВрдб" рдХреЗ рд╕рд╛рде рдкреВрд░рдХ рд╣реЛрддреЗ рд╣реИрдВ:
/var/log/screen/user@server-20130717-12:47:53-command.log


рдЦреИрд░, рдпрд╣ рдмрд╛рдд рд╣реИред рдЕрдм, рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╕рдордп, рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рд░реВрдЯ рд╕рд╣рд┐рдд - рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ рдпрджрд┐ рдЖрдк рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЦреЛ рджреЗрддреЗ рд╣реИрдВ!) рд╕реНрдХреНрд░реАрди рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдЬреЛ рдмреИрд╢ рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬрдм рдЖрдк рд╕реНрдХреНрд░реАрди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╣реИрдВ, рддреЛ рдкреИрд░реЗрдВрдЯ рдмреИрд╢ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХрдиреЗрдХреНрд╢рди рдмрд╛рдзрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рддреЛ рд╣рдо рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП ^ a + d рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЕрдЧрд▓реА рдмрд╛рд░ рдЬрдм рдЖрдк рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВрдЧреЗ, рддреЛ рдпрд╣ рд╕рддреНрд░ рдЕрдкрдиреЗ рдЖрдк рдХрдиреЗрдХреНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдЖрдЧреЗ рдХреЗ рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП:




рдкреНрд░рдпреБрдХреНрдд рд╕реНрд░реЛрдд:




рдЕрдкрдбреЗрдЯ:


1) рдЬреЛрдВрд▓реЗрде рдХреЗ рдЕрдиреБрд╕рд╛рд░ , рд░рд╛рд╕реНрддреЗ рдореБрд╢реНрдХрд┐рд▓ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВ:
рдкреИрд░рд╛:
 SCREEN=`which screen` KILL=`which kill` 
рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд:
 SCREEN=/usr/bin/screen KILL=/bin/kill 


рдлрд┐рд▓рд╣рд╛рд▓, рдХрдорд╛рдВрдб рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ 2 рддрд░реАрдХреЗ рд╣реИрдВ:


1) Kiltum рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ : ssh рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ @ рд╣реЛрд╕реНрдЯ "ls -l" рдЬреИрд╕реЗ рдХрдорд╛рдВрдб рд▓реЙрдЧ рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрджреЗрд╢реЛрдВ рдХреЛ / рдмрд┐рди / bash -c <рдХрдорд╛рдВрдб> рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдЖрд╡рд╢реНрдпрдХ /etc/bash.bashrc рдирд╣реАрдВ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкреНрд░рд┐рдп 1ex рдиреЗ ssh рдХреЗ рд▓рд┐рдП рдЖрд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рдорд╛рдзрд╛рди рд╕реБрдЭрд╛рдпрд╛ред рдЕрдм рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рднреА рдХрдорд╛рдВрдб рд▓реЙрдЧ рд╣реЛ рдЧрдП рд╣реИрдВред рдХрд┐рдП рдЧрдП рдкрд╛рда рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиред
2) рдлреЙрд░рдПрд╡рд░рдпреБрдВрдЧ рдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ : рд╕реНрдХреНрд░реАрди -рдПрдХреНрд╕ рд▓реЙрдЧ рдХрдорд╛рдВрдб рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░ рджреЗрддрд╛ рд╣реИред
рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЕрдм рддрдХ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдХреЛрдИ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рдЙрдкрд╛рдп рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рдпрд╣ рдХрдорд╛рдВрдб рдЕрднреА рднреА рд▓реЙрдЧ рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛)ред
рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред

рдкрд░рд┐рдгрд╛рдо:


рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рд╕реНрдХреНрд░реАрди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН, рдХрдорд╛рдВрдб рдХреЛ рдордЬрдмреВрд░ рдХрд░рдиреЗ рдФрд░ рд▓реЙрдЧ рдЖрдЙрдЯ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рдмрд┐рдирд╛ рдЙрдиреНрд╣реЗрдВ рд▓реЙрдЧ рдЖрдЙрдЯ рдХрд░рдирд╛ред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдореНрдорд╛рдирд┐рдд рдЕрдорд╛рд░рд╛рдУ рдиреЗ рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рд╣реИ, рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ:
рдП) рдЫрджреНрдо рдЯрд░реНрдорд┐рдирд▓реЛрдВ (рдЕрдзрд┐рдХ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ) рд╕реЗ рдЧреБрдЬрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд╕реВрдБрдШрдирд╛ред kiltum рдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХрд┐ рд╡рд╣ рдмрд╣реБрдд рд╣реА рдХрдордЬрд╝реЛрд░ рд╣реИ ред рд╕реНрд▓рд┐рдкрд░ рдиреЗ рд╕реНрдиреВрдкрд┐ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ред
b) рдСрдбрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо (SELinux / Apparmor / etc), рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдм рдХреБрдЫ рд░рд┐рдХреЙрд░реНрдб рдХрд░реЗрдЧрд╛ред
рд▓реЗрдХрд┐рди рдпреЗ рдирд┐рд░реНрдгрдп рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИрдВред

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдХрдорд┐рдпреЛрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░реАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд░рд┐рдпрд╛рдУрдВ рдФрд░ рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдЙрдЪрд┐рдд рд╣реИ, рд╕рд░рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдХрд╛рд░рдг рдФрд░, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рд░реАрдбрд┐рдВрдЧ рд▓реЙрдЧ рдХреА рд╕рд╛рджрдЧреА (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдСрдбрд┐рдЯ рдХреЗ рд╡рд┐рдкрд░реАрдд)ред

Source: https://habr.com/ru/post/In186732/


All Articles