$ echo 'Open ports are:';nmap localhost -oG -|grep -oP '[0-9]*(?=/open)'
Open ports are:
22
6000
Я только что наткнулся на эту опцию вman script
:
-f Flush output after each write. This is nice for telecooperation:
One person does ‘mkfifo foo; script -f foo’ and another can
supervise real-time what is being done using ‘cat foo’.
Я еще не играл с этим, но похоже именно то , что я искал. Играя с ним, можно установить, передаются ли также цвет и т. д.
Есть команда screen
. Я думаю, это именно то, что вы ищете.
https://www.rackaid.com/blog/linux-screen-tutorial-and-how-to/
Важной информацией для вас является то, что более одного пользователя могут прикрепить к одному экрану
Хорошо, совместное использование экрана с screen
возможно, но более опасно, чем я думал.
screen
был установлен в качестве идентификатора root, чтобы он мог получить доступ к сокетам
других пользователей. (Можно подумать, что это можно заставить работать
только с setgid, но я не проверял, можно ли скомпилировать screen
таким образом
.) Тем не менее, я смог заставить его работать для некоторых значений «работа».
Сначала убедитесь, что у него достаточно прав, и исправьте разрешения для / var / run / screen
:
chmod u+s /usr/bin/screen
chmod 755 /var/run/screen
Затем объедините некоторые команды конфигурации в файл:
$ cat shared.screen.rc
multiuser on
aclumask ?-wx
aclumask ??-wx
addacl foo
aclchg foo -x ?
aclchg foo +x detach,help,next,prev,windows,info,select
multiuser
включает многопользовательский режим, aclumask
ограничивает доступ по умолчанию для всех пользователей, затем addacl
разрешает (весь) доступ пользователю foo
. Команды aclchg
удаляют доступ на выполнение ( -x
) для всех команд (?
), а затем мы снова разрешаем некоторые безопасные команды.
Затем, запустив screen -c shared.screen.rc
, создается экран, к которому пользователь foo
может присоединиться:
foo$ screen -ls bar/
There is a suitable screen on:
18839.pts-2.test (08/21/16 22:09:07) (Multi, detached)
foo$ screen -r bar/
Запись на экран и использование большинства команд результат в ошибке. Однако режим копирования, похоже, работает. Кроме того, начальный экран с screen -rd bar /
, поскольку пользователь, не владеющий правами, выталкивает пользователя-владельца, даже если вы думаете, что это невозможно. screen -RRD
тоже работает, и выходит из системы первоначального пользователя. Даже если вы можете запретить pow_detach
и detach
(что должно быть интересным для второго пользователя), похоже, это не влияет на это. Занимательный.
Конечно, если вы не против и готовы позволить другим пользователям возиться с вашим экраном, достаточно использовать multiuser на
и addacl foo
. Не то чтобы я говорю, что вам следует.
Многие предлагали экран
. Экран несколько староват, да и плоховат. Я предлагаю tmux
.
Чтобы создать сеанс, просто запустите tmux new -s
Затем, чтобы другой человек подключился к этому сеансу, все, что ему нужно сделать, это запустить tmux a -t
, следя за тем, чтобы имя оставалось прежним.
Чтобы выйти из сеанса, нажмите Ctrl - b , затем d .
Обратите внимание: все это должно выполняться на одном сервере / компьютере.
Вы можете использовать тройник
, чтобы направить свой вывод на терминал другого человека, если вы знаете, какой терминал он использует.
Вы можете использовать команду w
, чтобы узнать терминал:
user4@myubuntu:~$ w
16:41:36 up 13 min, 4 users, load average: 0.55, 0.60, 0.46
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user1 :0 :0 16:28 ?xdm? 6:28 0.03s gdm-session-worker [pam/gdm-password]
user2 pts/1 :0 16:38 2:46 0.04s 0.04s bash
user3 pts/7 :0 16:38 1:32 0.09s 0.09s bash
user4 pts/8 :0 16:41 4.00s 0.05s 0.00s w
Я user4
на терминале pts / 8
. Если я хочу отправить свой вывод на user2
на терминале pts / 1
, я использую следующую команду для запуска новой оболочки:
$ bash | tee /dev/pts/1
Затем весь вывод моих последующих команд (но не ввод) будет скопирован на терминал user2
. Если вы закончили, просто нажмите Ctrl-D
, чтобы завершить работу оболочки.
Если вы хотите отправить сообщение или текст другому пользователю, вы можете использовать команду write
:
$ write <username>
hello, are you there ?
Ctrl-d
kibitz
-позволяют двум и более людям взаимодействовать с одной оболочкой.
Я думаю, это то, что вы ищете!
Выполнить
yum install tcl expect
чтобы получить и использовать кибиц %user
.