Cara membuat Pengguna SFTP (SSH) dengan izin yang sangat terbatas

8

saya menjalankan server di Ubuntu Server 14.04. Saya ingin membuat pengguna yang dapat terhubung melalui sftp, mengunduh 1 file dan mengakhiri koneksi. Pengguna seharusnya tidak dapat melakukan APA SAJA. Menelusuri file atau pengaturan sistem atau entri baris perintah, tidak ada. Masuk, unduh file, gg. Ketika file diperbarui, login unduh, gg. File tersebut berada di direktori yang sama setiap waktu dan memiliki nama yang sama setiap kali tetapi diperbarui.

EDIT: Saya mencoba menerapkan solusi Anda tetapi saya telah menemukan beberapa masalah: Pada file konfigurasi ssh pada konfigurasi saya ada garis dengan "izinkan grup sshdusers". Saya telah menambahkan sftp_users. Tapi ada masalah lain di depan. sudo chown root.root / ubuntu / tidak optimal untuk saya karena root tidak dapat ssh dan menulis ke direktori file yang harus diunduh "ubuntu" (kami akan menyebutnya user1. Saya ingin user1 dapat menulis di direktori dan ubuntu untuk membaca saja. Jika saya mengubah sudo chown user1.user1 / ubuntu / dan saya mencoba untuk sftp dengan pengguna ubuntu koneksi gagal. Jika saya membiarkannya root seperti yang Anda lakukan saya dapat terhubung tetapi saya tidak dapat melihat direktori saat ini saya hanya melihat / dan mengosongkan filezilla. Saya bahkan telah menambahkan user1 ke sftp_users, tetapi masih tidak berhasil.

Terimakasih banyak

BlueStarry
sumber

Jawaban:

11

Ayo mulai

Buat pengguna ubuntu

sudo useradd ubuntu

Buat kata sandi

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

Buat untuk grup hanya SFTP

xxx@xxx:~$ sudo groupadd sftp_users 

Tambahkan ke pengguna "ubuntu" untuk grup hanya SFTP

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

Buat dir untuk sftpakses

sudo mkdir /ubuntu

Ganti pemilik, karena izin baca / tulis

sudo chown root.root /ubuntu/

Tambahkan izin

sudo chmod 755 /ubuntu/

Edit /etc/ssh/sshd_config

sudo nano /etc/ssh/sshd_config

Beri komentar dan tambahkan baris seperti di bawah ini

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

Tambahkan yang terakhir

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

Mulai kembali sshlayanan

sudo service ssh restart

Dengan konfigurasi ini Anda dapat masuk ke folder ubuntudan mendapatkan file. Tidak bisa putataudelete

Mencoba.

Edit 1

Untuk sftp di edit folder kanan /etc/passwd. Ubah baris agar pengguna ubuntuterlihat seperti ini

sudo nano /etc/passwd

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

Ini akan mengubah folder home ubuntu pengguna ke folder server sftp Anda.

Mengaktifkan rootakun bukan ide yang baik.

Anda dapat ssh ke server dengan user1.

Jika Anda menambahkan pengguna user1di sudoer groupAnda akan dapat menulis di folder /ubuntu/dan mengatur izin yang sesuai

sudo adduser user1 sudo

Buat folder, tulis di folder ubuntu. Setelah tindakan, Anda harus menetapkan izin untuk pengguna ubuntu. Cara termudah adalah dengan menetapkan izin ke 755

sudo chmod 755 -R /ubuntu/

-R - Opsi akan memberikan izin membaca semua file dan direktori untuk pengguna ubuntu

2707974
sumber
Terima kasih banyak. Lihat hasil edit saya untuk lebih, karena komentarnya sangat ketat.
BlueStarry
1
Anda memiliki Edit 1 dalam jawaban saya.
2707974
Saya minta maaf untuk mengatakan bahwa itu tidak berhasil. Dengan filezilla sftp saya tidak bisa menulis di folder dengan user1 atau ubuntu. masuk dengan ubuntu via sftp memberi saya folder / meskipun modifikasi terakhir. Saya sudah mencoba beberapa kali dan saya tidak dapat memecahkan masalahnya.
BlueStarry
Saya pikir juga bahwa 755 tidak baik untuk tujuan ini karena pemiliknya adalah root dan sudoers tidak dapat menulis dalam folder dengan 755
BlueStarry
Bahkan kembali pada tahun 2015, saya yakin Ubuntu menggunakan adduserdan addgroup, daripada useradd, groupadd, dll sudo chown root.root /ubuntu/hanya salah. Anda membuat direktori menggunakan sudo, jadi kepemilikan sudah ada root. Itu harus digunakan ubuntu.sftp_users. Akhirnya, jika Anda awalnya membuatnya sebagai milik ubuntu, semuanya dari " Mengaktifkan pengguna root ..." tidak perlu.
Auspex