Custom Openssh Shell

L'ambiente è Ubuntu Server 12.04

Vorrei creare un utente su un server che è in grado di ssh solo in una shell che esegue tail -f su un file di registro e chiude la session una volta che il programma finisce (ctrl + c).

  • Gestione di XEN tramite virt-manager su ubuntu 12.04
  • Imansible creare Java VM su OpenVZ
  • Cosa può andare male con un aggiornamento GLIBC?
  • Round Robin Default Gateways su Linux
  • Raccomandazioni su un buon multiplexer terminal
  • Httpd problema, sospetto un attacco, ma non sicuro
  • C'è un modo per raggiungere questo objective?

  • Amazon EC2 fuso orario
  • Sintonizzazione dello stack IPv6 di Linux
  • lsync, unison o qualche altro inotify strumento di sincronizzazione automatica ..?
  • Qual è la differenza tra "sudo su" e "sudo -i"?
  • Linux su VMware - perché utilizzare il partizionamento?
  • Salvataggio di database MySQL senza mysqldump
  • 3 Solutions collect form web for “Custom Openssh Shell”

    Per essere pedanti, non sarà ctrl + c, ma SIGHUP (più vicino a ctrl + d) che uccide l'applicazione.

    Potete mettere essenzialmente tutto ciò che volete nella shell dell'utente in /etc/passwd . Semplicemente sostituire l'impostazione predefinita nella linea passwd dell'utente (probabilmente /bin/bash ) con un altro programma. Questo programma può essere uno script, ad esempio /usr/bin/tail_log_file , con questi contenuti, di properties; di root: root, con umode 0755:

     #!/bin/rbash tail -f /path/to/logfile 

    È ansible utilizzare un interpnetworking diverso da rbash, ma è consigliabile utilizzare una shell limitata in tali casi.

    Per essere estremamente pedanti su di esso, dovresti aggiungere il path dello script a /etc/shells , ma di solito mi sembra comunque funziona.

    Ricorda inoltre che l'utente potrebbe mettere lo script in background o utilizzare alcune opzioni ( ssh username@host bash ) e ancora acquisire una shell. Se si desidera limitare l'utente in tali modi, le autorizzazioni di file system sono l'unica soluzione vera.

    i comandi forzati ssh si prendono in mente se siete felici di utilizzare l'authentication basata su keypair.

     man authorized_keys /command= 

    È ansible configurare ssh per eseguire un command di tua scelta quando si accede utilizzando l'authentication di chiave pubblica. A tal fine, generare una coppia di chiavi:

     djs@sardinia:~$ ssh-keygen -f restricted-key Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in restricted-key. Your public key has been saved in restricted-key.pub. The key fingerprint is: b1:8f:26:47:c2:c5:f2:8d:ed:a0:c4:bd:9a:30:9d:08 djs@sardinia [...] 

    restricted-key.pub contiene una row che può essere inserita nel file ~/.ssh/authorized_keys dell'utente:

     ssh-rsa AAAA...UDz47Nl djs@sardinia 

    ma è ansible aggiungere un command a questo command e ssh eseguirà quel command quando si accede alla chiave:

     command="tail -f /my/interesting/file" ssh-rsa AAAA...UDz47Nl djs@sardinia 

    Quindi l'utente può ssh alla macchina usando ssh -i restricted-key .

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.