GNU/Linux >> Belajar Linux >  >> Linux

Cara membatasi pengguna ke satu folder dan tidak mengizinkan mereka keluar dari foldernya

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 yang dapat ditulis grup

$ 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_config dan ditambahkan 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 di luar file direktori Maksud saya semua file-nya harus ada di Folder file.


Pembatasan adalah masalah yang masuk akal, dan harus didefinisikan secara konsisten. Apa yang dapat Anda lakukan adalah mendefinisikan shell yang dibatasi untuk pengguna sebagai shell default miliknya .

Misalnya, menyetel /bin/rksh (kulit korn yang dibatasi) alih-alih shell yang telah ditentukan pengguna sebagai shell default untuk pengguna tersebut di /etc/profile .

CATATAN: jika file yang dapat dieksekusi dengan nama ini tidak ada di sistem Anda, buat tautan keras ln /bin/ksh /bin/rksh dan ksh akan menentukan dengan namanya apakah itu dibatasi atau tidak.

Shell yang dibatasi akan (misalnya) mencegah melakukan cd perintah, atau menentukan perintah dengan / (jalur eksplisit) dalam pemanggilan, dan tidak mengizinkan pengubahan PATH , SHELL , atau ENV variabel, dan pengalihan keluaran juga dilarang.

Anda bisa masih memberikan predefined skrip shell kepada pengguna yang akan (di bawah kendali pelaksana skrip!) memungkinkan pengguna untuk menjalankan skrip tertentu di lingkungan yang tidak dibatasi.


Perintah chroot memungkinkan Anda membuat root terbatas untuk pengguna, pertanyaan ini menjelaskan konsep chroot dan cara menggunakannya.

Pembaruan:Mencari pengaturan chroot jail di samudra digital , menampilkan dokumentasi lebih lanjut khusus untuk lingkungannya. Berikut beberapa yang menurut saya terkait dengan apa yang mungkin Anda perlukan.

Cara Mengonfigurasi Lingkungan Chroot untuk Pengujian di Ubuntu 12.04 VPS

Cara mengizinkan akses SSH yang dibatasi ke pengguna yang dipenjara chroot

Ini salah satu yang berkaitan dengan jailkit, yang disarankan oleh FloHimself.


Linux
  1. Cara Mencadangkan NextCloud dan memindahkannya ke server lain

  2. Cara menggunakan Sudo untuk mengizinkan pengguna non-root menjalankan perintah tertentu

  3. Bagaimana saya bisa membuat sesi sudo satu jam dan bukan beberapa menit di Ubuntu 10.04?

  1. Bagaimana mengizinkan pengguna untuk menggunakan Sudo di Ubuntu Linux

  2. Cara Membuat Pengguna Sudo di Rocky Linux dan CentOS

  3. Bagaimana cara membatasi pengguna SSH untuk hanya mengizinkan tunneling SSH?

  1. Bagaimana Cara Memindahkan File Dari Satu Akun Pengguna Ke Akun Pengguna Lain Di Komputer Yang Sama?

  2. Cara Mengonfigurasi SSH untuk membatasi Pengguna/Grup dengan perintah izinkan dan tolak

  3. bagaimana saya bisa mencari file dan meng-zip-nya dalam satu file zip