Crea un utente remoto solo su OS X?

14

Mi piacerebbe creare un utente su OS X che abbia privilegi di login ssh remoti dove possono accedere a una certa cartella / percorso / a / i / goods / e aggiungere / modificare / cancellare file manualmente o tramite rsync mentre il resto del Mac è off limits (al di fuori della loro home directory).

Idealmente l'utente non dovrebbe avere accesso per eseguire altri programmi diversi da rsync.

Questo utente verrà utilizzato da un server di generazione per accedere e distribuire i file. Voglio utilizzare una coppia di chiavi pubblica / privata in modo che lo script di compilazione non richieda l'inserimento della password.

Come posso realizzare questo?

    
posta chrisan 24.02.2012 - 22:49
fonte

1 risposta

8

Il modo migliore per farlo è creare una prigione chroot per l'utente. Riporterò la risposta qui quando torno a casa, ma ho pubblicato la soluzione sul mio blog.

link

Di seguito sono riportate la maggior parte delle istruzioni del post precedente.

In primo luogo, è necessario creare il nuovo utente in Amministratore gruppi di lavoro e assegnare loro i privilegi di accesso per SSH tramite Server Admin o assegnarli a un gruppo con privilegi di accesso SSH. Ulteriori discussioni sono di seguito.

Dal Terminale, inizia a destra.

sudo cp /etc/sshd_config /etc/sshd_config.bkup

sudo chown root /
sudo chmod 755 /
sudo mkdir -p /chroot/user/scratchpad
sudo chown -R root /chroot
sudo chown user /chroot/user/scratchpad
sudo chmod -R 755 /chroot

Ogni nuovo utente aggiunto sarà quindi qualcosa sulla falsariga di quanto segue.

sudo mkdir -p /chroot/user2/scratchpad
sudo chown root /chroot/user2
sudo chown user2 /chroot/user2/scratchpad
sudo chmod -R 755 /chroot/user2

Ogni cartella in cui il percorso della prigione chroot deve essere di proprietà di root . Non credo che importi il gruppo in cui si trova la cartella. Quello che ho fatto sopra è stato

  1. backup /etc/sshd_config
  2. cambia la proprietà della directory principale in root
  3. modifica i permessi della directory root su 755
  4. crea una cartella chroot
  5. crea una cartella utente all'interno della cartella chroot
  6. crea una cartella all'interno della cartella utente che l'utente può modificare
  7. imposta proprietà e autorizzazioni

Ora per modificare /etc/sshd_config al seguente.

#Subsystem  sftp    /usr/libexec/sftp-server
Subsystem   sftp    internal-sftp

Match User user
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
    ChrootDirectory /chroot/user

Questo crea un chroot jail che quando l'utente effettua il login li rilascia nella cartella /chroot/user , in quella cartella c'è una cartella che possono aggiungere cose a /chroot/user/scratchpad .

Se si desidera creare un gruppo in Amministratore gruppi di lavoro per "Utenti Chroot", quindi aggiungere i nuovi utenti creati in Workgroup Admin al gruppo, non sarà necessario continuare a modificare il file /etc/sshd_config . Invece di quanto sopra, aggiungi quanto segue. Assicurati di aggiungere il gruppo 'Chroot Users' alla ACL di accesso SSH in Server Admin.

Match Group chrootusers
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
    ChrootDirectory /chroot/%u

Per verificare se funziona quanto sopra, emettere quanto segue dal terminale.

$ sftp [email protected]
Password:
sftp>
    
risposta data 25.02.2012 - 01:25
fonte

Leggi altre domande sui tag