Как добавить пользователя ssh, у которого есть только права доступа к определенной папке?
useradd -d /var/www/xyz.com.tr/musteri -s /bin/bash -g sshd musteri
Я создал пользователя с именем musteri
. Я установил свою домашнюю папку и группу. Итак, я хочу интегрировать musteri
пользователей в "/var/www/xyz.com.tr/musteri". Я не хочу доступ к другой папке.
scponly
как оболочку, возможно, работающую вchroot
режиме, ограничивающем его доступ к этому каталогу и нигде больше.scponly chroot
илиrssh chroot
должен привести вас к Howtos).Ответы:
Похоже, вы хотите, чтобы ваш müşteriler имел доступ для передачи файлов к папке, фактически не передавая им оболочки. Это хорошо, потому что, как указал binfalse , давать оболочкам людей с ограниченным доступом довольно сложно, потому что оболочкам нужен доступ ко всем видам вещей, разбросанных по системе, просто для запуска.
Чтобы предоставить SFTP-доступ к определенной папке, вы можете сделать что-то вроде этого.
/etc/ssh/sshd_config
) с помощью этих строкЭто активирует подсистему sftp внутри SSH и вынудит членов этой системной группы использовать только эту систему при входе в систему. Это также приведет к их привязке к их домашним каталогам. Вы можете изменить это на подпапку их домашних директоров, например,
ChrootDirectory %h/musteri_sftp
чтобы они не могли просматривать остальные системные файлы, а входили напрямую в специальную подпапку своей домашней папки.Колай Желсин.
источник
На мой взгляд, это очень сложно, если не невозможно. Когда пользователь подключается через SSH, ему по крайней мере требуется оболочка, в вашем случае -
bash
. Для выполнения/bin/bash
ему нужны разрешения на доступ/bin
.bash
Самому себе нужно читать некоторые вещи из/etc
(например/etc/bash.bashrc
), поэтому пользователю также необходим доступ/etc
. Предполагая, что пользователь не только хочет зависать в этом каталоге, он может захотеть прочитать файл, но для выполнения, например,vim
ему также необходим доступ/usr/bin
.Это всего лишь небольшая демонстрация, есть еще несколько зависимостей, например, я действительно не знаю, что произойдет, если у пользователя нет доступа к
/tmp
..Вы должны думать о своем намерении. Вы просто хотите, чтобы кто-то имел доступ на чтение / запись к части вашего веб-сервиса? Затем вы можете настроить что-то вроде FTP для экспорта определенного каталога этому пользователю. Таким образом, он может читать / записывать эти файлы без доступа по SSH.
Другим хорошим решением будет хранилище. Например, настройте репозиторий GIT и позвольте пользователю клонировать его. Он может сделать свои изменения локально и отправить вам патч. Вы можете решить, применять этот патч или нет, откат для глючных патчей также очень прост.
источник
rbash
предназначен именно для этого.