GNU/Linux >> Linux Esercitazione >  >> Linux

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

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.


Linux
  1. Come creare un utente Sudo su Rocky Linux e CentOS

  2. Come spostare i file da un account utente a un altro sullo stesso computer?

  3. Come eseguire il backup di NextCloud e spostarli su un altro server

  4. Come utilizzare sudo per consentire a un utente non root di eseguire un comando particolare

  5. come posso cercare i file e comprimerli in un unico file zip

Come aggiungere ed eliminare utenti su CentOS 8

Come aggiungere ed eliminare utenti su CentOS 7

Come aggiungere ed eliminare utenti su Debian 9

Come creare e configurare un utente Sudo su Arch Linux

Come creare un utente Sudo su Ubuntu e Debian

Permessi della directory Linux di base e come controllarli