为用户提供SSH访问权限,以及安全问题

好的,所以我有一个VPS,我为一个朋友做了一个帐户,所以他可以托pipe他自己的域名(使用DirectAdmin中的经销商function)。 他要求SSH访问,我知道这可能是一个坏主意。 他是否有权访问我的整个服务器,如执行命令,访问我在我的服务器上托pipe的域名? 我login到我的SSH使用他的帐户详细信息,它让我浏览所有的根文件夹/文件,他的帐户是在/ home / AccountName /。

反正有限制他只能访问他的文件夹? 而他可以使用的命令?

编辑:他可以安装程序和我的服务器上的东西吗?

作为一个普通的用户,你的朋友不会对你的服务器造成太大的伤害(当然,他们可能会产生一个叉炸弹或填满你的磁盘,但如果他们真的是朋友,他们可能不会拉扯一个家伙像那样)。 我的朋友们在我的机器上获得了真正的loginshell,如果他们要求一个帐户,并且严厉的讲座,如果他们做了任何让我生气的事情,他们会从机器上启动。

这听起来像你不太相信你的“朋友”,所以除了Rook的回答之外,我还会说一个有能力运行PHP脚本的半途而废的人可能和没有限制的用户一样危险(可login)SSH访问,我假设你的服务器允许PHP。 请记住,用户可以通过PHP运行不受信任的代码,直到包括下载,编译和运行系统上的其他任意程序(尽pipe在Web服务器用户权限的限制之内)。 一般来说,除非你把你的web服务器chroot / jailing到你的web服务器上,否则你的朋友可以用他的loginshell看到他可以看到一些不太有创意的PHP脚本。

底线:给你的系统上的某人一个帐户,然后在/ etc / passwd中locking他们的shell并设置SFTP chroot选项有帮助,但是你应该真正考虑任何访问的安全含义,以及你对这个人的信任程度。

给予某人FTP访问是networking安全方面最糟糕的事情之一。 蠕虫会嗅探networkingstream量寻找FTP,并将使用此传播。 我亲自清理了几个感染这样的网站。

您可以在/ etc / passwd中禁用对用户帐户的shell访问,在这种情况下,ssh仅用于SFTP。 您还可以在您的sshd_config文件中设置ChrootDirectory ,以防止用户访问您select的目录树之外的文件。 ChrootDirectory应该没有必要,你应该使用Linux内置的文件访问控制。 例如,如果该文件不是由用户所有,并且全局特权已被删除,那么该用户将无法访问该文件。 使用chmod 700而不是777.最后一个数字是全局特权,7给所有用户完全访问该文件。 chown user:group filename用于更改拥有该文件的用户/组。

SSH和FTP等。要求访问其余的文件,因为它们从bin目录运行命令到列表文件等等。一些FTP / SSH服务器支持chroot来访问正确的文件,甚至完全伪造访问。

您可以(也应该)保护您的主目录,并locking任何网站文件,只有需要它们的用户。 您的网站应该被locking为所有权yourname:www-data(在debian系统上)或yourname:apache(在redhat系统上),而他的将被locking到所有权hisname:www-data或hisname:apache以同样的方式)。 家庭和网站目录权限应该是o = rwx,g = rx,o =文件将与no x相同。 根据需要设置g + w和g + x,以便特定的web应用程序更新他们的文件。 特别是,站点上传,临时和caching目录通常需要g + w权限。

在你的服务器上运行man chmod和man chown,如果你不确定这是什么意思,请阅读。

另外,考虑在你的服务器上运行诸如plesk / webmin的东西,以便pipe理更容易(不好,但如果你是新手,也许会更好)。 或者,查看其他经销商的选项,更好地locking事情,所以你不必。

如果你担心你可以为他创build一个chroot环境,只需要访问他需要的工具和文件。