У меня есть Виртуальный Частный Сервер, который я могу подключить к использованию SSH с моей корневой учетной записью, способность выполнить любую команду Linux и доступ вся дисковая область, очевидно.
Я хотел бы создать другую учетную запись пользователя, которая сможет получить доступ к этому серверу с помощью SSH также, но только к определенному каталогу, например /var/www/example.com/
Например, предположите, что у этого пользователя есть ОГРОМНЫЙ файл error.log (500 МБ), расположенных в /var/www/example.com/logs/error.log
При доступе к этому файлу с помощью FTP этот пользователь должен загрузить 500 МБ для просмотра последних строк журнала, но я хотел бы, чтобы он смог выполнить что-то вроде этого:
tail error.log
Поэтому мне нужен он, чтобы смочь получить доступ к серверу с помощью SSH, но я не хочу предоставлять ему доступ ко всем областям сервера.
Как я могу сделать это?
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
Install the dchroot and debootstrap packages.
Как администратор (т.е. с помощью sudo), создайте новую директорию для Цветы. В этой процедуре будет использоваться каталог
/var/chroot
. На адрес сделайте это, введитеsudo mkdir /var/chroot
. в командную строку.Как администратор, открыт
/etc/schroot/schroot.conf
в тексте. Редактор. Введитеcd /etc/schroot
, а затемgksu gedit schroot.conf
. Это завещание позволяет редактировать файл.Добавьте следующие строки в
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
, чтобы установить пакеты.
Лучший вариант, IMHO, это установить ssh chroot jail, т.е. минимальное bash окружение на dir /var/www/example.com/
. Для этого вы можете следовать: