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

问题描述 投票:0回答:1

我想以下列方式设置一个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 /文件夹,但没有其他人。

linux permissions
1个回答
0
投票

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

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

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

如果您不需要允许其他人访问您的主文件夹(其他人或用户,如网络服务器的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)
  • find~ / Public -type f -exec chmod o + r {} \; - 允许每个人阅读〜/ Public中的文件
  • 找到〜/ Public -type d -exec chmod o + rx {} \; - 允许每个人进入目录并列出其内容
© www.soinside.com 2019 - 2024. All rights reserved.