initial commit
This commit is contained in:
commit
bd10cd17c2
|
@ -0,0 +1,47 @@
|
|||
#!/usr/bin/bash
|
||||
|
||||
if [ "$EUID" -ne 0 ]
|
||||
then echo "Please run as root"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
VIEWER="tmuxviewer"
|
||||
SSHD_CONFIG_FOLDER="/etc/ssh/sshd_config.d/"
|
||||
CONFIG_FILE="$VIEWER.config"
|
||||
CONFIG_FILE_PATH="$SSHD_CONFIG_FOLDER$CONFIG_FILE"
|
||||
BIN_FOLDER="/usr/bin/"
|
||||
VIEWER_BIN="tmux_viewer.sh"
|
||||
BROADCAST_BIN="tmux_broadcast.sh"
|
||||
|
||||
function install_tmuxviewer () {
|
||||
echo "adding $VIEWER_BIN and $BROADCAST_BIN to $BIN_FOLDER"
|
||||
sudo cp $VIEWER_BIN $BIN_FOLDER$VIEWER_BIN
|
||||
sudo cp $BROADCAST_BIN $BIN_FOLDER$BROADCAST_BIN
|
||||
echo "adding user $VIEWER"
|
||||
sudo useradd --home /tmp/$VIEWER --shell /usr/bin/tmux_viewer.sh $VIEWER
|
||||
echo "unsetting password for $VIEWER"
|
||||
sudo passwd -d $VIEWER 1> /dev/null
|
||||
sudo mkdir -p $SSHD_CONFIG_FOLDER
|
||||
sudo echo "Match User $VIEWER\n\tPermitEmptyPassword yes" > $CONFIG_FILE_PATH
|
||||
}
|
||||
|
||||
function uninstall_tmuxviewer () {
|
||||
echo "removing user $VIEWER"
|
||||
sudo userdel $VIEWER
|
||||
sudo rm $CONFIG_FILE_PATH
|
||||
sudo rm $BIN_FOLDER$VIEWER_BIN
|
||||
sudo rm $BIN_FOLDER$BROADCAST_BIN
|
||||
}
|
||||
|
||||
case $1 in
|
||||
install)
|
||||
uninstall_tmuxviewer 2> /dev/null
|
||||
install_tmuxviewer
|
||||
;;
|
||||
uninstall)
|
||||
uninstall_tmuxviewer
|
||||
;;
|
||||
*)
|
||||
echo "usage (as root): $0 [install|uninstall]"
|
||||
;;
|
||||
esac
|
|
@ -0,0 +1,16 @@
|
|||
# Tmux Viewer
|
||||
|
||||
Simple script combo to allow people to see what you're doing in a specific tmux session.
|
||||
|
||||
## Dependencies
|
||||
|
||||
```sudo apt install tmux```
|
||||
|
||||
## Install
|
||||
|
||||
```sudo bash install.sh install```
|
||||
|
||||
## Uninstall
|
||||
|
||||
```sudo bash install.sh uninstall```
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
#!/bin/bash
|
||||
|
||||
USER="$(whoami)"
|
||||
VIEWER="tmuxviewer"
|
||||
SOCKET="/tmp/$VIEWER/$USER"
|
||||
|
||||
if groups $USER | grep -q "sudo"; then
|
||||
mkdir -p /tmp/$VIEWER/
|
||||
sudo chown $VIEWER:$VIEWER "/tmp/$VIEWER"
|
||||
sudo chmod 777 /tmp/$VIEWER/ 2> /dev/null
|
||||
sudo chown $USER:$VIEWER $SOCKET
|
||||
sudo chmod 770 $SOCKET
|
||||
else
|
||||
echo "sorry, you're not allowed to broadcast.."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
tmux -S $SOCKET has-session -t shared 2> /dev/null
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
if groups $USER | grep -q "sudo"; then
|
||||
echo "no shared session running, creating one..."
|
||||
tmux -S $SOCKET new-session -A -s shared -d
|
||||
sudo chown $USER:$VIEWER $SOCKET
|
||||
chmod 770 $SOCKET
|
||||
else
|
||||
echo "you are not allowed to take over..."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "attaching to $SOCKET"
|
||||
tmux -S $SOCKET attach -t shared
|
|
@ -0,0 +1,50 @@
|
|||
#!/bin/bash
|
||||
|
||||
VIEWER="tmuxviewer"
|
||||
SOCKETS="/tmp/$VIEWER/"
|
||||
SESSIONS="$(ls $SOCKETS)"
|
||||
HOSTNAME="$(hostname).$(grep domain /etc/resolv.conf | cut -d " " -f 2)"
|
||||
|
||||
function select_session () {
|
||||
if [ $(echo $SESSIONS | wc -w) == 1 ]; then
|
||||
SOCKET=$SOCKETS$SESSIONS
|
||||
echo $SOCKET
|
||||
else
|
||||
echo "please choose a session to view: (or exit to quit)"
|
||||
select session in $(echo $SESSIONS); do
|
||||
if [ -n "$session" ]; then
|
||||
SOCKET=$SOCKETS$session
|
||||
echo "connection to $session at $SOCKET"
|
||||
view_session
|
||||
else
|
||||
case $REPLY in
|
||||
exit)
|
||||
echo "will quit now"
|
||||
break;;
|
||||
*)
|
||||
echo "refreshing list..."
|
||||
select_session
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
function view_session () {
|
||||
clear
|
||||
while :
|
||||
do
|
||||
tmux -S $SOCKET attach -t shared -r 2>/dev/null
|
||||
clear
|
||||
echo "$HOSTNAME is not broadcasting at $SOCKET..."
|
||||
sleep 1
|
||||
done
|
||||
}
|
||||
|
||||
function main () {
|
||||
select_session
|
||||
}
|
||||
|
||||
main
|
Loading…
Reference in New Issue