限制用户访问除文件夹之外的所有内容

限制用户访问除文件夹之外的所有内容

我有一个在 CentOS 6 上运行的 VPS。VPS 内部的组件分布在不同的文件夹中。我的网站位于 中/var/www/html,VPS 的其他一些关键组件位于 中/home/

有人可以给我一个快速指南,告诉我如何创建一个只能访问/home/目录而不能访问其他内容的新用户吗?

我尝试在 Google 上搜索,但我想我不知道如何措辞这些问题......

非常感谢您的帮助。

答案1

以下是如何仅使用特权来实现您所请求的功能,但请先阅读整个答案,然后再决定要做什么。(请注意,这不包括“没有其他的“部分,某些系统文件默认对所有人开放。)

  1. 创建一个允许访问的组/home

    $ addgroup homeaccess
    
  2. 创建有权限访问的新用户帐户/home:(如果已设置该用户帐户,请跳过此步骤)

    $ adduser --no-create-home HomeUser
    
  3. 将您自己和该帐户添加到组中:

    $ adduser MyUsername homeaccess
    $ adduser HomeUser homeaccess
    
  4. 让您创建的组成为以下组的所有者/home

    $ chgrp homeaccess /home
    
  5. 让小组阅读、书写并执行内容:

    $ chmod g+rwx /home
    
  6. 或者,对子文件夹/文件执行相同操作:

    $ chgrp homeaccess /home/*
    $ chmod g+rwx /home/*
    

在你开始做那件事之前,你应该重新考虑你的目录布局。/home专用于用户主目录,如果你需要让另一个用户访问全部的 /home,那么你很可能做错了什么。如果你的 中有超过用户目录的内容/home,那么你的目录布局就不好。也许简单地创建另一个用户并将所有这些文件转储到他的目录中(/home/user)将是最好的解决方案,因为您既修复了目录结构,又创建了另一个可以访问这些文件的目录。创建一个新的用户帐户及其用户目录非常简单:

$ adduser SomeUsername

相关内容