Come faccio a restringere l’accesso ad un utente che si collega con protocollo FTP?
  • Faq 208 per conoscere le porte TCP/IP usate su Mac
  • Faq 286 per attivare l'FTP server anonimo su Mac

In MacOS X c’è un demone (attivabile da pannello di controllo) che gestisce il server FTP.
In alcuni particolari casi (ad esempio se si ospita un sito web sul computer e si intende dare accesso al web master per modificarlo) si può rivelare utile limitare l’accesso di quell’utente ad una particolare directory.

In pratica si dice al computer (rectius: al sistema operativo) di non mostrare la classica "home" al login FTP, ma di mostrarne una diversa.

Le operazioni da fare sono essenzialmente due:

  1. modificare la "home" dell' utente
  2. dire al demone ftp che un particolare utente ha una home particolare

N.B. L'esempio che segue fa riferimento alla limitazione di un utente che deve collegarsi solo per aggiornare il sito internet che risiede sul nostro computer; mutatis mutandis si può applicare a qualsiasi altra necessità.
Questa FAQ inoltre presume che l' utente sia già stato creato nel vostro sistema e gli sia stata assegnata una password.

1. Modificare la "home" di un utente.

L' operazione va fatta tramite il programma "Gestione NetInfo" ("NetInfo Manager" nel system in lingua inglese), seguendo i seguenti passi:

  1. lanciare l' applicazione da "/applicazioni/utility/Gestione NetInfo";
  2. autenticarsi cliccando sul lucchetto in basso a sinistra nella finestra principale, e inserendo UserID e password di un utente con privilegi di amministratore;
  3. selezionare "user -> nomeutentedalimitare";
  4. selezionare la proprietà "Home" e inserire il valore (ovvero il percorso della directory) che sostituirà la classica "home". Nel nostro esempio diverrà "/Users/nomeutedalimitare/Sites";
  5. chiudere NetInfo e salvare le modifiche quando il programma lo richiede.

2. dire al demone ftp che un particolare utente ha una home particolare (in gergo "chrootare").

  • aprire il terminale da "/applicazioni/utility/Terminale";
  • tramite il comando "sudo pico /etc/ftpchroot" lanciare l' editor di testo (io uso pico, ma va bene qualsiasi altro) con privilegi di amministatore per modificare il file /etc/ftpchroot (se il file non esiste lo creerete alla fine della modifica con l'editor);
  • inserire la password di amministratore;
  • adesso state modificando il file "/etc/ftpchroot";
  • inserire, uno per riga, il nome degli utenti da chrootare (in questo caso "nomeutentedalimitare");
  • chiudere l'editor di testo (con pico ctrl-X) e salvare, se il file non esisteva dategli il nome "ftpchroot".

A questo punto avete chrootato l' utente, fate un prova selezionando nel finder il menu "vai -> collegamento al server..." (cmd-K) e inserite "ftp://nomeutentedalimitare@vostrositoftp", vi apparirà un "dialog box" in cui dovrete inserire la password dell' utente.
Dopo qualche secondo sulla scrivania verrà montato un volume chiamato "nomeutentedalimitare@vostrositoftp" e aprendolo potrete verificare che la "root" (ovvero la directory base oltre cui non potete risalire) è proprio quella indicata in NetInfo.


Ulteriore accortezza: visto che l'utente dovrà solo collegarsi per "uppare il sito" nella creazione (Preferenze di sistema / Account) lo dichiariamo come "gestito", e gli impediamo di fare qualunque cosa (modificare password, usare applicazioni, etc.).

Il discorso vale, ovviamente, per il demone FTP, se ci si collega in SSH (attivando il relativo demone) si aprono altre porte per il collegamento con servizi diversi.

[ Home | Elenco delle FAQ | Forum | Segnalazioni | Risorse | Feed RSS ]