Cara membatasi pengguna ke satu folder dan tidak mengizinkan mereka untuk memindahkan foldernya

28

Saya memiliki server ubuntu di digitalocean dan saya ingin memberi seseorang folder untuk domain mereka di server saya, masalah saya adalah, saya tidak ingin pengguna itu melihat folder atau file saya atau untuk dapat memindahkan folder mereka.

Bagaimana saya bisa membatasi pengguna ini di folder mereka dan tidak mengizinkannya untuk pindah dan melihat file / direktori lain?

badr
sumber
Anda mungkin ingin menggunakan akun pengguna terpisah untuk tujuan itu.
Martin von Wittich
Atau mungkin Jailkit
FloHimself
chmod bukan solusi yang baik karena saya tidak bisa menggunakannya untuk semua folder di server saya yang saya gunakan sebelum dia bisa keluar foldernya
badr
sebenarnya saya tidak tahu tentang grup karena saya tidak menggunakannya sebelumnya bisakah Anda menjelaskan kepada saya apa manfaatnya?
badr

Jawaban:

26

Saya memecahkan masalah saya dengan cara ini:

Buat grup baru

$ sudo addgroup exchangefiles

Buat direktori chroot

$ sudo mkdir /var/www/GroupFolder/
$ sudo chmod g+rx /var/www/GroupFolder/

Buat direktori grup yang dapat ditulis

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

Berikan keduanya ke grup baru

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

setelah itu saya pergi ke /etc/ssh/sshd_configdan menambahkan ke akhir 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

Sekarang saya akan menambahkan pengguna baru dengan nama obama ke grup saya:

$ sudo adduser --ingroup exchangefiles obama

Sekarang semuanya sudah selesai, jadi kita perlu me-restart layanan ssh:

$ sudo service ssh restart

perhatikan: pengguna sekarang tidak dapat melakukan apa pun keluar filedirektori Maksudku semua file-nya harus di folder File.

badr
sumber
1
Saya beralih pengguna sudo su - obamadan masih dapat melihat file orang lain @badr
alper
11

Pembatasan adalah masalah yang masuk akal, dan harus didefinisikan secara konsisten. Yang dapat Anda lakukan adalah mendefinisikan shell terbatas untuk pengguna sebagai shell default- nya .

Sebagai contoh, pengaturan /bin/rksh(sebuah kornshell terbatas) alih-alih shell yang telah ditentukan pengguna sebagai shell default untuk pengguna tersebut /etc/profile.

CATATAN: jika executable dengan nama ini tidak ada di sistem Anda, buat tautan keras ln /bin/ksh /bin/rkshdan kshakan menentukan namanya apakah dibatasi atau tidak.

The shell dibatasi akan (misalnya) mencegah melakukan cdperintah, atau menentukan perintah dengan /(jalur eksplisit) di doa, dan itu Dilarang mengubah PATH, SHELLatau ENVvariabel, dan pengalihan output yang juga dilarang.

Anda masih dapat memberikan skrip shell yang telah ditetapkan kepada pengguna yang akan (di bawah kontrol implement skrip!) Memungkinkan pengguna untuk menjalankan skrip tertentu di lingkungan yang tidak dibatasi.

Janis
sumber
Jawaban ini akan jauh lebih sederhana daripada mengatur lingkungan chroot jadi saya telah memilihnya.
Azhrei
5

Perintah ini chrootmemungkinkan Anda untuk membuat root terbatas untuk pengguna, pertanyaan ini menjelaskan konsep chrootdan cara menggunakannya.

Pembaruan: Mencari chroot jail yang diatur di laut digital , menampilkan dokumentasi lebih lanjut khusus untuk lingkungan mereka Berikut adalah pasangan yang saya pikir terkait dengan apa yang mungkin Anda butuhkan.

Cara Mengkonfigurasi Lingkungan Chroot untuk Pengujian pada Ubuntu 12.04 VPS

Cara mengizinkan akses SSH terbatas ke pengguna chroot yang dipenjara

Inilah yang berhubungan dengan jailkit , yang disarankan FloHimself .

X Tian
sumber
ya mereka menjelaskannya tetapi mereka tidak menjelaskan bagaimana menggunakannya saya mencoba dengan beberapa pujian tetapi itu yang saya dapatkan: chroot: gagal menjalankan perintah '/ bin / bash': Tidak ada file atau direktori seperti itu
badr
1
Benar, tetapi sekarang Anda telah mendengar tentang chroot jail, Anda dapat melakukan lebih banyak riset, saya telah memperbarui jawaban dengan beberapa tautan ke dokumen di Digital Ocean, yang memberikan penjelasan lebih lanjut yang disesuaikan dengan lingkungan mereka.
X Tian