Creare un utente solo remoto in OS X?


15

Vorrei creare un utente su OS X con privilegi di accesso remoto ssh in cui possano accedere a una determinata cartella / percorso / a / the / goods / e aggiungere / modificare / eliminare i file manualmente o tramite rsync mentre il resto del Mac è off limits (fuori dalla 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 build per accedere e distribuire i file. Voglio usare una coppia di chiavi pubblica / privata, quindi lo script di compilazione non richiede l'immissione della password.

Come posso farlo?

Risposte:


9

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

https://thefragens.com/chrootd-sftp-on-mac-os-x-server/

Di seguito sono riportate la maggior parte delle istruzioni dal post sopra.

Innanzitutto, è necessario creare il nuovo utente in Workgroup Admin e assegnare loro i privilegi di accesso per SSH tramite Server Admin o assegnarli a un gruppo che dispone dei privilegi di accesso SSH. Ulteriori discussioni sono di seguito.

Dal terminale, iniziare 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 aggiuntivo 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 si trova il percorso verso il carcere chroot deve essere di proprietà root. Non credo sia importante il gruppo in cui si trova la cartella. Quello che ho fatto sopra era

  1. di riserva /etc/sshd_config
  2. cambia la proprietà della directory principale in root
  3. modifica le autorizzazioni della directory principale su 755
  4. crea una cartella chroot
  5. crea una cartella utente all'interno della cartella chroot
  6. creare una cartella all'interno della cartella dell'utente che l'utente può modificare
  7. impostare la proprietà e le autorizzazioni

Ora per modificare /etc/sshd_configa quanto segue.

#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 una prigione chroot che quando l'utente accede li lascerà cadere nella cartella /chroot/user, in quella cartella c'è una cartella a cui possono aggiungere cose /chroot/user/scratchpad.

Se desideri creare un gruppo nell'amministratore del gruppo di lavoro per "Utenti chroot", aggiungi i nuovi utenti che hai creato nell'amministratore del gruppo di lavoro al gruppo, non dovrai continuare a modificare il /etc/sshd_configfile. Invece di quanto sopra, aggiungi quanto segue. Assicurati di aggiungere il gruppo "Utenti chroot" all'ACL di accesso SSH in Server Admin.

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

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

$ sftp user@domain.com
Password:
sftp>

Sto solo risolvendo i miei problemi e documentando nel caso in cui dovessi farlo di nuovo. ;-)
Afragen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.