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.