Могу ли я создать пользователя SSH, который может получить доступ только к определенному каталогу?

У меня есть Virtual Private Server, с которым я могу подключиться к SSH с моей учетной записью root, имея возможность выполнить любую команду linux и получить доступ ко всей области диска.

Я хотел бы создать еще одну учетную запись пользователя, которая также сможет получить доступ к этому серверу с помощью SSH, но только к определенному каталогу, например /var/www/example.com/

  • В Debian Gnome окна увеличиваются на несколько мониторов
  • Автоматический вход root в Debian 6.0 без GUI (xserver)
  • Проблемы с NVIDIA & X11 и Debian
  • Настройка Apache для обслуживания нескольких поддоменов через HTTP + HTTPS
  • Как я могу сначала сделать «ls» show dotfiles?
  • Utf8 hebrew на консоли mysql на debian (через шпатлёвку на окнах)
  • Например, представьте, что у этого пользователя есть HUGE файл error.log (500 МБ), расположенный в /var/www/example.com/logs/error.log При обращении к этому файлу с помощью FTP этот пользователь должен загрузить 500 МБ для просмотра Последние строки журнала, но я хотел бы, чтобы он мог выполнить что-то вроде этого:

    tail error.log

    Поэтому мне нужно, чтобы он мог получить доступ к серверу с помощью SSH, но я не хочу предоставлять ему доступ ко всем областям сервера.

    Как я могу это сделать?

  • Windows vs Linux Local Time?
  • Как просматривать изображения LuraWave в Linux?
  • Односторонняя синхронизация / резервное копирование с помощью Unison
  • Rsync с использованием regex для включения только некоторых файлов
  • Что делает крипт (3) и еще что означает
  • В linux, как мне создать / восстановить снимок изображения всего моего диска?
  • 2 Solutions collect form web for “Могу ли я создать пользователя SSH, который может получить доступ только к определенному каталогу?”

    chroot пользователь.


    Обновить:

    В статье TechRepublic от Vincent Danen говорится:

    С выпуском OpenSSH 4.9p1 вам больше не придется полагаться на сторонние хаки или сложные настройки chroot, чтобы ограничить пользователей их домашними каталогами или предоставить им доступ к службам SFTP.

    Отредактируйте / etc / ssh / sshd_config (/ etc / sshd_config в некоторых дистрибутивах) и установите следующие параметры:

     Subsystem sftp internal-sftp Match Group sftp ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no 

    Убедитесь, что директива «Match» находится в конце файла. Это говорит OpenSSH, что все пользователи в группе sftp должны быть chrooted в их домашний каталог (который% h представляет в команде ChrootDirectory

    Для любых пользователей, которые вы хотите chroot, добавьте их в группу sftp, используя:

     # usermod -G sftp joe # usermod -s /bin/false joe # chown root:root /home/joe # chmod 0755 /home/joe 

    Команда usermod выше добавит пользователя joe в группу sftp и установит свою оболочку в / bin / false, чтобы они абсолютно не могли получить доступ к оболочке. Команды chown и chmod установят необходимые разрешения для каталога. При наличии этих разрешений пользователю будет разрешено загружать и загружать файлы, но не может создавать каталоги или файлы в корневом каталоге

    Корректировка учетных записей оболочки немного сложнее, так как требуется, чтобы определенные файлы устройств и оболочка были доступны в домашнем каталоге пользователя. Следующие команды создадут очень базовую систему chroot на Mandriva Linux:

     # mkdir /chroot # cd /chroot # mkdir {bin,dev,lib} # cp -p /bin/bash bin/ # cp -p /lib/{ld-linux.so.2,libc.so.6,libdl.so.2,libtermcap.so.2} lib/ # mknod dev/null c 1 3 # mknod dev/zero c 1 5 # chmod 0666 dev/{null,zero} # mkdir -p /chroot/home/joe 

    С приведенным выше, пользователь joe может использовать ssh и будет ограничен chroot. К сожалению, это мало что делает, но это дает вам представление о том, как его можно настроить. В зависимости от того, что вы хотите предоставить, вам нужно будет установить дополнительные библиотеки и двоичные файлы.


    Веб-сайт сообщества Ubuntu

    Создание chroot

    1. Установите пакеты dchroot и debootstrap.

    2. Как администратор (т. Е. Используя sudo), создайте новый каталог для chroot. В этой процедуре будет использоваться каталог /var/chroot . Для этого введите sudo mkdir /var/chroot в командной строке.

    3. В качестве администратора откройте /etc/schroot/schroot.conf в текстовом редакторе. Введите cd /etc/schroot , а затем gksu gedit schroot.conf . Это позволит вам отредактировать файл.

    4. Добавьте следующие строки в schroot.conf а затем сохраните и закройте файл. Замените your_username своим именем пользователя.

      [Lucid] description = Ubuntu Lucid location = / var / chroot priority = 3 users = your_username groups = sbuild root-groups = root

    Откройте терминал и введите:

     sudo debootstrap --variant=buildd --arch i386 lucid /var/chroot/ \ http://mirror.url.com/ubuntu/ 

    Это создаст базовую «установку» Ubuntu 10.04 (Lucid Lynx) в chroot. Загрузка пакетов может занять некоторое время. Примечание. Вы можете заменить lucid на версию Ubuntu по вашему выбору. Примечание. Вы должны изменить указанное выше mirror.url.com с URL-адресом действительного архивного зеркала, локального для вас. Теперь должен быть создан базовый chroot. Введите sudo chroot /var/chroot чтобы перейти в корневую оболочку внутри chroot.

    Настройка chroot

    Есть несколько основных шагов, которые вы можете предпринять для настройки chroot, предоставления таких возможностей, как разрешение DNS и доступ к /proc .

    Примечание. Введите эти команды в оболочку, которая находится за пределами chroot.

    Введите следующую команду для монтирования файловой системы /proc в chroot (требуется для управления процессами):

     sudo mount -o bind /proc /var/chroot/proc 

    Введите разрешение DNS изнутри chroot (необходимое для доступа в Интернет):

     sudo cp /etc/resolv.conf /var/chroot/etc/resolv.conf 

    Очень мало пакетов устанавливаются по умолчанию в chroot (даже sudo не установлен). Используйте apt-get install package_name для установки пакетов.

    Лучше всего, ИМХО, это создать ssh chroot тюрьму, то есть минимальную среду bash в /var/www/example.com/ . Для этого вы можете следовать:

    • Jailkit
    • Руководство пользователя root Debian ssh в howtoforge
    Давайте будем гением компьютера.