如何仅为 sftp 创建用户?

Ton*_*osa 16 linux ssh sftp upload

我已经通过该adduser工具向系统添加了一个用户。然后,在 中/etc/passwd,我尝试将/bin/bashto/sbin/nologin或 to更改为/dev/null,但这些都不起作用。

我希望用户没有获得交互式 shell 的选项,而只能使用sftp. 有办法吗?

我知道以前有人问过这里,但似乎没有人给出满意的答复。

use*_*517 11

您应该用来更改 shell 的命令是 chsh。nologin shell 可以是/sbin/nologin/usr/sbin/nologin(通过查看查看您拥有的/etc/shells)但/bin/false可能是更好的选择。

chsh -s /bin/false user
Run Code Online (Sandbox Code Playgroud)

您应该考虑设置像scponly这样的东西,它可以完全满足您的需求。

  • 这个答案是大海捞针!确保 `/bin/false` 和 `/bin/nologin` 实际上在 `/etc/shells` 中可用! (3认同)

Edu*_*nec 11

您还应该能够使用 OpenSSH 4.9 及更高版本来执行此操作,您还可以通过 chroot 用户以提高安全性。

在您的/etc/ssh/sshd_config

Match User user
ChrootDirectory /home/user
ForceCommand internal-sftp
AllowTcpForwarding no
Run Code Online (Sandbox Code Playgroud)

然后运行:

chsh -s /bin/false user
chown root:root /home/user
mkdir /home/user/uploads
chown user /home/user/uploads
Run Code Online (Sandbox Code Playgroud)

用户将只能写入 /home/user/uploads。

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