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

使用Linux组和用户权限设置朋友共享空间,linux,permissions,Linux,Permissions,我想通过以下方式设置linux共享空间: 我想让一个用户调用管理员有权访问所有其他用户的主目录。 我希望能够创建用户A、B、C、D、E,并且除了主文件夹(和/tmp/如果需要)之外,他们都不能查看任何其他文件夹。 我不希望他们能够查看任何其他文件。 我将使用此选项,以便为他们创建一个用户,他们可以登录查看/编辑其主文件夹中的文件,而无需其他操作(或将文件导入其中) 我该怎么做? 我的第一个想法是创建一个组并将它们全部放在该组中,但我不希望它们能够查看彼此的文件。 我注意到/home/*中的文件夹

我想通过以下方式设置linux共享空间: 我想让一个用户调用管理员有权访问所有其他用户的主目录。 我希望能够创建用户A、B、C、D、E,并且除了主文件夹(和/tmp/如果需要)之外,他们都不能查看任何其他文件夹。
我不希望他们能够查看任何其他文件。 我将使用此选项,以便为他们创建一个用户,他们可以登录查看/编辑其主文件夹中的文件,而无需其他操作(或将文件导入其中)

我该怎么做? 我的第一个想法是创建一个组并将它们全部放在该组中,但我不希望它们能够查看彼此的文件。 我注意到/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将无法写入这些文件正确吗?
如果是这样的话,我需要做什么才能让用户管理员查看所有这些/home/文件夹,而不是其他人。

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

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

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

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

对于系统范围的配置,编辑/etc/profile;可以在~/.profile中配置每个用户的设置。我更喜欢对所有用户使用相同的策略,因此我会编辑/etc/profile文件并附加以下行:

乌马斯克027

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

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

chmod-ro-rwx~

现在,如果您决定将~/Public文件夹共享给所有人,请运行以下命令:

  • chmod o+x~-允许所有人进入目录(x),但不获取目录列表(r

  • find~/Public-type f-exec chmod o+r{}-允许所有人阅读~/Public

  • find~/Public-type d-exec chmod o+rx{}-允许每个人进入目录并列出其内容

谢谢Pulkit,我最终创建了一个用户,即公共用户,然后将所有其他用户添加到该用户子组中。我还向其他所有人帐户的子组添加了另一个用户(me)。然后,在创建新用户后,我在新用户的home dir上chmod g+rwx。我创建了一个简单的脚本来实现这一点。我感谢你的帮助!