Compartilhe sua tela por ssh somente leitura no GNU / Linux

Aviso: esta capacidade precisa definir o sinalizador SUID, pode colocar sua máquina em um risco de segurança.

Encontre o arquivo binário da tela

Verifique se o arquivo é a versão binária, não um arquivo de link

which ‪setuid‬‬

Definir SUID *

chmod u+s /usr/bin/screen

OR


chmod
4755 /usr/bin/screen

Verifique se Rbash não existe, crie-o

Rbash ajuda para acesso shell somente leitura

[! -e /bin/rbash] && ln -sf bash /bin/rbash

Crie um usuário limitado

useradd -m -s /bin/rbash luser

Definir senha para novo usuário

passwd luser

Criar perfil

Crie um .profile na casa do novo usuário que contenha:

trap "" 2 3 20
clear

ehco
"Welcome"
echo
-n "Pres Enter to continue" && read
screen
-x root/linux-class

Adicione .profile em .bash_profile

Adicione a linha abaixo em /home/luser/.bash_profile para executar o arquivo .profile no início do terminal.

‫‪source‬‬ ‫‪~/.profile‬‬

Criar sessão de tela

Criar arquivo /root/linux-class.sh contém:

source /etc/profile
screen
-wipe
if ! ls /root/.screen/*linux-class* &> /dev/null;then
screen -dmS linux-class

fi

TMP=$(mktemp)

cat > ${TMP} << EOF

multiuser on

acladd students

aclchg students -wx "#,?"

aclchg students +x "detach"

EOF

screen -r linux-class -X source ${TMP}

rm ${TMP}

Torne-o executável

Adicione permissão de execução ao arquivo linux-class.sh

chmod +x /root/linux-class.sh

SSH

Agora você pode se conectar ao ssh e usar o terminal limitado:

‫‪‫ssh ‪luser@IP_ADDRESS

Referência: http://pmoghadam.com/