为学生开发者设置服务器

为学生开发者设置服务器

我希望每个人的主目录中都有一个文件夹,可以通过互联网访问,并受密码保护。我还想限制每个人在主文件夹中可以拥有的内容量。

当他们 ssh 到机器上时,他们也只能查看那里的文件,而看不到主目录以外的任何内容。

我正在为一些学生设置服务器,进行一些编码和文件共享。如能得到任何帮助,我将不胜感激。

谢谢,麻烦您了。

答案1

首先,您应该使用基于密钥的 ssh 身份验证,而不是基于密码的身份验证。他们需要从一开始就学习如何做好安全工作……

OpenSSH 可以选择将用户 chroot 到他们的主目录,这样学生就可以留在他们自己的 $HOME 中。或者,您可以使用权限/umask 来限制对其他学生的 $HOME 的访问。

可能/将需要更多,这取决于他们需要进行什么样的开发......

答案2

chroots 的参数有点儿小题大做。

只需将用户的主目录设置为 700 权限,或者更具体地说“只有所有者可以在目录中执行任何操作”就足够了。如果您担心他们知道彼此的存在,ls /home您可以更进一步,创建一个由 root 拥有且权限为 rwx--x--x 的 /home/students 目录,并在其中创建用户。

编辑/etc/adduser.conf以设置DIR_MODE=0700,并DHOME=xxx设置默认家庭前缀。

同意之前那个人的说法,你应该只强制使用 SSH 密钥来访问这台机器。你应该让他们生成一个 ssh 公钥并通过电子邮件将其提供给你,而不是给他们一个一次性密码。

ssh-keygen -t rsa -b 2048

应该足够了,并且可以在 Linux 和 Mac 上运行。如果使用的是 Windows,PuTTY 有一个很好的教程来设置 ssh 密钥。执行该命令后,他们应该只会向您发送~/.ssh/id_rsa.pub

相关内容