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

У меня есть Виртуальный Частный Сервер, который я могу подключить к использованию SSH с моей корневой учетной записью, способность выполнить любую команду Linux и доступ вся дисковая область, очевидно.

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

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

tail error.log

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

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

45
задан 19.06.2011, 01:06

2 ответа

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


Обновление:

В статье TechRepublic Винсента Дэнена говорится:

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

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

sftp подсистемы sftp internal-sftp
Матч-группа
 ChrootDirectory %h
 ФорсКоманда внутренняя...шрифт
 AllowTcpПересылка нет

Убедитесь, что директива "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 установят требуемые права доступа к каталогу. При таких настройках пользователю будет разрешено загружать и скачивать файлы, но он не сможет создавать каталоги или файлы в корневом каталоге

Учетные записи оболочки chrooting shell немного сложнее, так как для этого требуется, чтобы определенные файлы устройств и оболочки были доступны в домашнем каталоге пользователя. Следующие команды установят очень простую 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

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


На сайте Ubuntu Community Website написано

Creating a chroot

  1. Install the dchroot and debootstrap packages.

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

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

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

    [понятно] описание=Светонепроницаемость местоположение=/вар/крот приоритет=3 пользователи=your_username группы=строительство root-groups=root

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

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

Это создаст базовый "установка" Убунту 10.04 (Люсид). Рысью) в цветушке. Может потребоваться в то время как для пакетов Загружено. Примечание: Вы можете заменить понятный с версией Ubuntu вашего Выбор. Примечание: Вы должны изменить выше mirror.url.com с URL-адресом a Действительный архив отражает ваше локальное зеркало. A основной цвет должен был теперь быть созданный. Тип sudo chroot /var/chroot . превратиться в корневую оболочку внутри Цветы.

Настройка chroot

Там... это некоторые основные шаги, которые вы можете предпринять создавать корнишку, обеспечивая такие средства, как разрешение DNS и доступ к /proc.

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

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

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

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

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

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

29
ответ дан 07.12.2019, 08:37

Лучший вариант, IMHO, это установить ssh chroot jail, т.е. минимальное bash окружение на dir /var/www/example.com/. Для этого вы можете следовать:

16
ответ дан 07.12.2019, 08:37

Теги

Похожие вопросы