使用Linux组和用户权限设置好友共享空间

时间:2013-03-08 00:23:58

标签: linux permissions

我想以下列方式设置一个linux共享空间: 我想让一个用户让我们调用admin来访问所有其他用户的主目录。 我希望能够创建用户A,B,C,D,E,并且除了主文件夹(和/ tmp /如果需要)之外,它们都没有查看任何其他文件夹。
我不希望他们能够查看任何其他文件。 我将使用这个,所以我可以为他们创建一个用户,他们可以登录查看/编辑他们的主文件夹中的文件,而不是其他任何东西(或scp文件到其中)

我该怎么做? 我的第一个想法是创建一个组并将它们全部放在该组中,但我不希望它们能够查看彼此的文件。 我注意到/ home / *中的文件夹只能由所有者读取,写入和执行:

[test2@XXX home]$ pwd
/home
[test2@XXX home]$ ll
drwx------  3 test2       test2        4096 Mar  7 18:54 test2

这是否足够权限?
/ home / A /中的文件是

[test2@XXX~]$ pwd
/home/test2
[test2@XXX~]$ ll
total 4
drwxrwxr-x 2 test2 test2 4096 Mar  7 18:54 testdir
-rw-rw-r-- 1 test2 test2    0 Mar  7 18:54 testfile

用户B无法正确写入这些文件? 如果是这样,我需要做什么才能让用户admin能够查看所有这些/ home /文件夹,而不是其他人。

1 个答案:

答案 0 :(得分:0)

首先,您需要一个用户“Admin”,他将对用户A,B,C,D,E的所有主目录拥有rwx权限。这里我假设您的“Admin”用户不是 root

您可以参考此link来实现此功能。

现在您不希望任何用户A,B,C,D,E看到彼此的文件,但主目录中存在公共文件夹( / home / user )用于与其他用户共享文件。如果其他用户想要访问此Public文件夹,则应在主目录中设置世界的执行位。

如果您不需要允许其他人访问您的主文件夹(其他人或用户如 www-data 用于网络服务器),您可以使用 chmod o-rwx “$ HOME”(从“其他”删除读/写/执行,相当于 chmod 750“$ HOME”,因为默认权限为750)。否则,您也应该更改umask设置,以防止新创建的文件默认获得对该世界的读取权限。

对于系统范围的配置,请修改 / etc / profile ;可以在〜/ .profile 中配置每用户设置。我更喜欢所有用户使用相同的政策,因此我会修改 / etc / profile 文件并添加以下行:

  

umask 027

您需要重新登录才能应用这些更改,除非您在shell中。在这种情况下,您可以在shell中运行 umask 027

现在要修复现有权限,您需要从其他权限中删除读/写/执行权限:

  

chmod -R o-rwx~

现在,如果您决定将〜/ Public 文件夹分享给所有人,请运行下一个命令:

  • chmod o + x~ - 允许每个人都进入目录( x ),但不能获得目录列表( r 不应该添加)

  • 查找〜/ Public -type f -exec chmod o + r {} \; - 允许所有人阅读〜/ Public 中的文件

  • 查找〜/ Public -type d -exec chmod o + rx {} \; - 允许所有人进入目录并列出其内容