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

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

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

Например, представьте, что у этого пользователя есть HUGE файл error.log (500 МБ), расположенный в /var/www/example.com/logs/error.log При обращении к этому файлу с помощью FTP этот пользователь должен загрузить 500 МБ для просмотра Последние строки журнала, но я хотел бы, чтобы он мог выполнить что-то вроде этого:

tail error.log

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

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

  • Зависимые и фиксирующие взаимозависимости
  • Есть ли способ вызвать скрипт, когда Ubuntu просыпается из режима ожидания или спящего режима?
  • Найти все установленные пользователем пакеты
  • Zsh не попадает ~ / .profile
  • Разрешение sudo запрещено
  • Как установить gvim на Ubuntu 10.10?
  • Проблемы с записью дисков bluray
  • Настройка профилей процессов на ubuntu
  • 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
    Interesting Posts

    Как можно приобрести / получить Microsoft DVD / CD-носители, если у вас есть только версия для загрузки MSDNAA

    Показывать доступные для пользователя размеры файлов в команде PowerShell по умолчанию

    Негабаритный (более высокого разрешения) виртуальный рабочий стол путем масштабирования / масштабирования для Windows (XP)?

    Аварии Windows 7 BSOD

    Установка Windows на ноутбук с помощью внешнего монитора (основной дисплей сломан)

    Можно ли переименовать шрифты в Windows 7?

    Как подключить элемент панели управления для запуска?

    Почему USB-накопители намного медленнее, чем твердотельные диски?

    Vim: Как синхронизировать NERDTree с текущим открытым файлом пути к вкладке?

    Как изменить режим браузера в IE9 на постоянной основе?

    Как отслеживать сетевой трафик на маршрутизаторе?

    Как найти время простоя с момента последнего выхода из режима ожидания

    Основной вопрос * nix (Mac OS X): Где мой путь установлен?

    Название каталога слишком длинное

    В Windows можно вручную выбрать выход USB-усилителя?

    Давайте будем гением компьютера.