Come creare un utente SFTP (SSH) con autorizzazioni estremamente limitate


8

corro un server su Ubuntu Server 14.04. Voglio creare un utente in grado di connettersi tramite sftp, scaricare 1 file e terminare la connessione. L'utente non dovrebbe essere in grado di fare NIENTE altro. Esplorazione di file o impostazioni di sistema né voci della riga di comando, niente. Accedi, scarica il file, gg. Quando il file viene aggiornato, accedi scaricalo, gg. Il file si trova sempre nella stessa directory e ha lo stesso nome ogni volta ma viene aggiornato.

EDIT: Sto cercando di implementare la tua soluzione ma ho riscontrato alcuni problemi: sul file di configurazione di ssh nella mia configurazione c'è una riga con "consentire gruppi sshdusers". Ho aggiunto sftp_users. Ma c'è un altro problema da affrontare. sudo chown root.root / ubuntu / non è ottimale per me perché root non è in grado di scrivere e scrivere nella directory il file che "ubuntu" deve scaricare (lo chiameremo user1. Voglio che user1 sia in grado di scrivere su directory e ubuntu in sola lettura. Se cambio sudo chown user1.user1 / ubuntu / e provo a sftp con l'utente ubuntu la connessione fallisce. Se lascio root come te posso collegarmi ma non riesco a vedere il currentdirectory vedo solo / ed empy su filezilla. Ho persino aggiunto user1 a sftp_users, ma non ho ancora avuto successo.

Grazie molto

Risposte:


11

Iniziamo

Creare un utente ubuntu

sudo useradd ubuntu

Crea password

sudo passwd ubuntu
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

Crea per solo gruppo SFTP

xxx@xxx:~$ sudo groupadd sftp_users 

Aggiungi a un utente "ubuntu" per il gruppo solo SFTP

xxx@xxx:~$ sudo usermod -G sftp_users ubuntu 

Crea dir per l' sftpaccesso

sudo mkdir /ubuntu

Cambia proprietario, perché autorizzazione di lettura / scrittura

sudo chown root.root /ubuntu/

Aggiungi permesso

sudo chmod 755 /ubuntu/

modificare /etc/ssh/sshd_config

sudo nano /etc/ssh/sshd_config

Commenta e aggiungi una riga come di seguito

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

Aggiungi alla fine

Match Group sftp_users
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory /ubuntu
  ForceCommand internal-sftp

Riavvia il sshservizio

sudo service ssh restart

Con questa cenfigurazione puoi ssh nella cartella ubuntue ottenere file. Impossibile putodelete

Provare.

Modifica 1

Per sftp nella modifica della cartella giusta /etc/passwd. Cambia riga affinché l'utente ubuntuassomigli a questo

sudo nano /etc/passwd

 ubuntu:x:1001:1001::/ubuntu:

Questo cambierà la cartella home ubuntu dell'utente nella cartella del tuo server sftp.

Abilitare l' rootaccount non è una buona idea.

Puoi ssh al server con user1.

Se si aggiunge utente user1in sudoer groupsi sarà in grado di scrivere nella cartella /ubuntu/e impostare autorizzazioni appropriate

sudo adduser user1 sudo

Crea cartella, scrivi nella cartella ubuntu. Dopo le azioni è necessario impostare l'autorizzazione per l'utente ubuntu. Il modo più semplice è impostare l'autorizzazione su 755

sudo chmod 755 -R /ubuntu/

-R - L'opzione darà l'autorizzazione alla lettura di tutti i file e le directory per l'utente ubuntu


Molte grazie a te. Vedi la mia modifica per ulteriori informazioni, in quanto i commenti sono molto stretti.
BlueStarry,

1
Hai Modifica 1 nella mia risposta.
2707974,

Mi dispiace dire che non funziona. Con filezilla sftp non posso scrivere sulla cartella con user1 né ubuntu. accedendo con Ubuntu tramite sftp mi dà la cartella / nonostante le ultime modifiche. ho provato più volte e non riesco a capire il problema.
BlueStarry,

Penso anche che 755 non sia adatto a questo scopo perché il proprietario è root e i sudoers non possono scrivere nella cartella con 755
BlueStarry,

Già nel 2015, sono sicuro che Ubuntu stava usando addusere addgroup, piuttosto che useradd, groupadd, ecc sudo chown root.root /ubuntu/è solo sbagliato. Hai creato la directory usando sudo, quindi la proprietà è già root. Dovrebbe usare ubuntu.sftp_users. Infine, se inizialmente lo avessi creato come di proprietà ubuntu, tutto da " Abilitare l'utente root ..." è superfluo.
Auspex,
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.