GNU/Linux >> Linux Esercitazione >  >> Linux

Come determinare se ho effettuato l'accesso tramite SSH?

Soluzione 1:

Potresti usare l'output del comando "w" o "who". Quando ti connetti tramite ssh, mostreranno il tuo IP di origine.

Soluzione 2:

Ecco un'ottima risposta che ho trovato su unix.stackexchange:

  • Se una delle variabili SSH_CLIENT o SSH_TTY è definito, è una sessione ssh.
  • Il processo padre della shell di login può essere controllato con ps -o comm= -p $PPID . Se è sshd , è una sessione ssh.
if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
  SESSION_TYPE=remote/ssh
else
  case $(ps -o comm= -p $PPID) in
    sshd|*/sshd) SESSION_TYPE=remote/ssh;;
  esac
fi

Soluzione 3:

Potresti aggiungere SSH_* a env_keep in sudoers in modo che questo possa essere rilevato mentre si passa all'altro utente.

Soluzione 4:

Se vuoi sapere se la tua bash shell è direttamente un processo figlio di sshd (non n>1 livelli di profondità) puoi farlo

cat /proc/$PPID/status | testa -1 | taglia -f2

dovrebbe darti sshd o qualunque sia il nome del processo padre della tua shell corrente.

Soluzione 5:

Penso che tu voglia ripensare il modo in cui pensi al problema. La domanda non è "ho effettuato l'accesso tramite SSH, perché voglio disattivare determinati comandi". È "sono loggato alla console, perché poi abiliterò determinati comandi."


Linux
  1. Come eseguire il tunneling HTTP su SSH tramite SOCKS?

  2. Come connettersi a una macchina virtuale hyper-v locale tramite SSH?

  3. Come posso determinare la dimensione del blocco di una partizione ext3 su Linux?

  4. SSH - Come includere il comando -t nel file ~/.ssh/config

  5. Come installare Linux da remoto tramite SSH?

Come connettersi al tuo server web tramite SSH

Come connettersi al tuo server tramite SSH

Come accedere al mio account cPanel tramite SSH?

Come eseguire l'SSH sul server tramite Linux

Come ripristinare un backup cPanel tramite SSH

Come posso utilizzare rsync con un indirizzo IPv6 tramite SSH?