0

我想通过以下方式设置一个 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 不能正确写入这些文件吗?如果是这样,我需要做什么才能让用户管理员能够查看所有这些 /home/ 文件夹但没有其他人。

4

1 回答 1

0

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

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

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

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

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

掩码 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 {} \; - 允许每个人进入目录并列出他们的内容
于 2013-03-08T06:25:14.353 回答