Як обмежити користувача в одній папці і не дати їм переміщати його папку


28

У мене є сервер ubuntu на digitalocean, і я хочу надати комусь папку для свого домену на моєму сервері, моя проблема полягає в тому, що я не хочу, щоб цей користувач бачив мої папки або файли або міг перемістити їх папку.

Як я можу обмежити цього користувача у своїй папці та не дозволити йому пересуватися та переглядати інші файли / каталоги?


Ви можете використовувати для цього окремі облікові записи користувачів.
Мартін фон Віттіч

А може, Jailkit
FloHimself

chmod не є гарним рішенням, тому що я не можу використовувати його для всієї папки на моєму сервері, яку я використовував, перш ніж він зможе перемістити свою папку
badr

насправді я не маю уявлення про групу, тому що я не використовував її раніше, ви можете мені просто пояснити, яка користь від неї?
badr

Ще один метод - serverfault.com/questions/497011/… .
slm

Відповіді:


26

Я вирішив свою проблему таким чином:

Створіть нову групу

$ sudo addgroup exchangefiles

Створіть каталог chroot

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

Створіть довідник для запису групи

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

Віддайте їх обом у нову групу

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

після цього я перейшов до /etc/ssh/sshd_configкінця файлу:

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

Тепер я додам до своєї групи нового користувача з ім'ям obama:

$ sudo adduser --ingroup exchangefiles obama

Тепер все зроблено, тому нам потрібно перезапустити службу ssh:

$ sudo service ssh restart

зауважте: користувач зараз не може нічого робити з fileкаталогу, я маю на увазі, що весь його файл повинен бути у папці файлу.


1
Я переключив користувачів, як sudo su - obamaі досі він може бачити файли інших людей @badr
alper

11

Обмеження є розумним питанням, і його потрібно визначати послідовно. Що ви можете зробити, це визначити обмежену оболонку для користувача як його оболонку за замовчуванням .

Наприклад, встановлення /bin/rksh(обмежена kornshell) замість попередньо визначеної оболонки користувача як оболонки за замовчуванням для цього користувача в /etc/profile.

ПРИМІТКА: якщо виконуваного файлу з цим іменем не існує у вашій системі, тоді створіть жорстке посилання ln /bin/ksh /bin/rkshта kshвизначте, чи є воно обмеженим чи ні.

Обмежено оболонка буде (наприклад) запобігає робити cdкоманду, або вказавши команду з /(явно заданим шляхом) у виклику, і він забороняє змінювати PATH, SHELLабо ENVзмінний, і вихідні перепризначення також заборонені.

Ви все ще можете надати заздалегідь визначені сценарії оболонки користувачеві, які дозволять (під керуванням реалізаторів сценарію!) Користувачеві запускати цей конкретний (-и) сценарій (-ів) у необмеженому середовищі.


Ця відповідь буде набагато простішою, ніж створити середовище chroot, тож я проголосував за це.
Ажрей

5

Команда chrootдозволяє створити обмежений корінь для користувача, це питання пояснює поняття chrootта як ним користуватися.

Оновлення: пошук в'язниці Chroot, встановленої в цифровому океані , пропонує подальшу документацію, специфічну для їх оточення. Ось пара, на яку я думаю, пов'язана з тим, що вам може знадобитися.

Як налаштувати Chroot середовища для тестування на Ubuntu 12.04 VPS

Як дозволити доступ з обмеженим доступом до SSH для в'язного користувача Chroot

Ось, який стосується джейкіта , який запропонував FloHimself .


так, вони пояснюють це, але вони не пояснювали, як його використовувати, я намагався з деякою похвалою, але що я отримую: chroot: не вдалося запустити команду '/ bin / bash': Немає такого файлу чи каталогу
badr

1
Правда, але тепер ви чули про тюрму Chroot, ви могли б провести більше досліджень, я оновив відповідь з деякими посиланнями на документи на Digital Ocean, які дають додаткові пояснення, пристосовані до їх оточення.
X Тянь
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.