Назад | Перейти на главную страницу

Как создать пользователя только для sftp?

Я добавил пользователя в систему через adduser инструмент. Затем в /etc/passwd, Я попытался изменить /bin/bash к /sbin/nologin или чтобы /dev/null, но ни один из них не работал.

Я бы хотел, чтобы у пользователя не было возможности получить интерактивную оболочку, а просто использовать sftp. Есть способ?

Я знаю, что об этом здесь спрашивали раньше, но, похоже, никто не дал удовлетворительного ответа.

Вы также должны иметь возможность сделать это с помощью OpenSSH 4.9 и выше, с помощью которого вы можете дополнительно заблокировать пользователя для повышения безопасности.

В твоем /etc/ssh/sshd_config:

Match User user
ChrootDirectory /home/user
ForceCommand internal-sftp
AllowTcpForwarding no

Затем запустите:

chsh -s /bin/false user
chown root:root /home/user
mkdir /home/user/uploads
chown user /home/user/uploads

Пользователь сможет писать только в / home / user / uploads.

https://debian-administration.org/article/590/OpenSSH_SFTP_chroot_with_ChrootDirectory

Команда, которую вы должны использовать для изменения оболочки: чш. Оболочка nologin может быть /sbin/nologin или /usr/sbin/nologin (проверьте, какие у вас есть, заглянув в /etc/shells) но /bin/false вероятно был бы лучшим выбором.

chsh -s /bin/false user

Вам следует подумать о настройке чего-то вроде scponly который сделает именно то, что вы хотите.

Я думаю, что лучше всего использовать mysecureshell

http://mysecureshell.sourceforge.net/en/index.html

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

Вы можете добавить пользователя с помощью -s /bin/false чтобы отключить их оболочку, но вам действительно следует изучить настройку chrooted sftp account. Это приведет к «заключению» пользователя в его собственный каталог и лишит его возможности доступа или изменения любых файлов или каталогов за пределами каталога chroot.