Ho risolto il mio problema in questo modo:
Crea un nuovo gruppo
$ sudo addgroup exchangefiles
Crea la directory chroot
$ sudo mkdir /var/www/GroupFolder/
$ sudo chmod g+rx /var/www/GroupFolder/
Crea la directory scrivibile dal gruppo
$ sudo mkdir -p /var/www/GroupFolder/files/
$ sudo chmod g+rwx /var/www/GroupFolder/files/
Dai entrambi al nuovo gruppo
$ sudo chgrp -R exchangefiles /var/www/GroupFolder/
successivamente sono andato a /etc/ssh/sshd_config
e aggiunto alla fine del file:
Match Group exchangefiles
# Force the connection to use SFTP and chroot to the required directory.
ForceCommand internal-sftp
ChrootDirectory /var/www/GroupFolder/
# Disable tunneling, authentication agent, TCP and X11 forwarding.
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
Ora aggiungerò un nuovo utente con nome obama al mio gruppo:
$ sudo adduser --ingroup exchangefiles obama
Ora tutto è fatto, quindi dobbiamo riavviare il servizio ssh:
$ sudo service ssh restart
avviso:l'utente ora non può fare nulla al di fuori di file
cartella Voglio dire che tutti i suoi file devono essere nella cartella dei file.
Le restrizioni sono una questione sensata e devono essere definite in modo coerente. Quello che puoi fare è definire una shell ristretta per l'utente come sua shell predefinita .
Ad esempio, impostando /bin/rksh
(una kornshell ristretta) invece della shell predefinita dell'utente come shell predefinita per quell'utente in /etc/profile
.
NOTA: se l'eseguibile con questo nome non esiste sul tuo sistema allora crea un hard link ln /bin/ksh /bin/rksh
e ksh
determinerà dal suo nome se è limitato o meno.
La shell ristretta impedirà (ad esempio) di eseguire un cd
comando, o specificando un comando con un /
(un percorso esplicito) nell'invocazione e non consente la modifica di PATH
, SHELL
o ENV
variabile e anche i reindirizzamenti dell'output sono proibiti.
Puoi fornire ancora predefiniti script di shell all'utente che (sotto il controllo dell'implementatore di script!) consentirà all'utente di eseguire quello specifico script in un ambiente senza restrizioni.
Il comando chroot
ti permette di creare una root ristretta per un utente, questa domanda spiega il concetto di chroot
e come usarlo.
Aggiornamento:ricerca di chroot jail set up on digital ocean , mostra ulteriore documentazione specifica per il loro ambiente. Eccone un paio che penso siano correlati a ciò di cui potresti aver bisogno.
Come configurare gli ambienti Chroot per i test su un VPS Ubuntu 12.04
Come consentire l'accesso SSH limitato all'utente chroot in carcere
Eccone uno relativo al jailkit, suggerito da FloHimself.