Я добавил пользователя в систему через 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.