Come limitare un utente a una cartella e non consentire loro di spostare la sua cartella


28

Ho un server Ubuntu su digitalocean e voglio dare a qualcuno una cartella per il loro dominio sul mio server, il mio problema è che non voglio che quell'utente veda le mie cartelle o i miei file o sia in grado di spostare la loro cartella.

Come posso limitare questo utente nella sua cartella e non consentirgli di uscire e vedere altri file / directory?


È possibile che si desideri utilizzare account utente separati a tale scopo.
Martin von Wittich,

O forse Jailkit
FloHimself

chmod non è una buona soluzione perché non posso usarlo per tutte le cartelle nel mio server che ho usato prima che potesse spostare la sua cartella
badr

in realtà non ho idea del gruppo perché non l'ho mai usato prima, puoi spiegarmi quali sono i vantaggi?
badr,

Risposte:


26

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/

Creare la directory scrivibile in gruppo

$ sudo mkdir -p /var/www/GroupFolder/files/
$ sudo chmod g+rwx /var/www/GroupFolder/files/

Dagli entrambi al nuovo gruppo

$ sudo chgrp -R exchangefiles /var/www/GroupFolder/

successivamente sono andato a /etc/ssh/sshd_confige ho 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 il nome obama al mio gruppo:

$ sudo adduser --ingroup exchangefiles obama

Ora tutto è fatto, quindi abbiamo bisogno di riavviare il servizio ssh:

$ sudo service ssh restart

avviso: l'utente ora non può fare nulla nella filedirectory, intendo che tutto il suo file deve essere nella cartella File.


1
Sono passato gli utenti come sudo su - obamae ancora riesco a vedere i file degli altri @badr
Alper

11

Le restrizioni sono un problema ragionevole e devono essere definite in modo coerente. Quello che puoi fare è definire una shell con restrizioni per l'utente come shell predefinita .

Ad esempio, l'impostazione /bin/rksh(un kornshell limitato) anziché la shell predefinita dell'utente come shell predefinita per quell'utente in /etc/profile.

NOTA: se il file eseguibile con questo nome non esiste sul sistema, creare un collegamento reale ln /bin/ksh /bin/rksheksh determinerà con il suo nome se è limitato o meno.

La shell ristretta sarà (per esempio) prevenire lo facendo un cdcomando, o specificando un comando con una /(un percorso esplicito) nella invocazione, e non consente la modifica PATH, SHELLo ENVvariabile, e reindirizzamenti output sono anche proibiti.

È possibile ancora fornire predefiniti script di shell per l'utente che (sotto il controllo implementatori di script!) Consentono all'utente di eseguire lo script specifico (s) in un ambiente senza restrizioni.


Questa risposta sarà molto più semplice della creazione di un ambiente chroot, quindi l'ho votato.
Azhrei,

5

Il comando chrootti consente di creare un root limitato per un utente, questa domanda spiega il concetto chroote come usarlo.

Aggiornamento: ricerca del carcere chroot installato sull'oceano digitale , porta ulteriore documentazione specifica per il loro ambiente. Ecco un paio che penso siano legati a ciò di cui potresti aver bisogno.

Come configurare gli ambienti Chroot per i test su Ubuntu 12.04 VPS

Come consentire l'accesso SSH limitato all'utente chroot imprigionato

Eccone uno relativo al jailkit , suggerito da FloHimself .


si lo spiegano ma non spiegano come usarlo ho provato con qualche encomio ma quello che ottengo: chroot: impossibile eseguire il comando '/ bin / bash': nessun tale file o directory
badr

1
È vero, ma ora hai sentito parlare della prigione chroot, potresti fare ulteriori ricerche, ho aggiornato la risposta con alcuni link ai documenti su Digital Ocean, che forniscono ulteriori spiegazioni su misura per il loro ambiente.
X Tian,
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.