【问题标题】:giving 2 diff users access to a folder让 2 个不同的用户访问一个文件夹
【发布时间】:2014-05-28 22:39:05
【问题描述】:

我需要向 2 个用户授予访问权限,一个具有读取权限,另一个具有对特定文件夹(/文件夹)的写入权限。两个用户都应该在同一个组中(sftp)

具有读取权限的用户:readsftp 具有写入权限的用户:writesftp

我已经完成了

useradd -G sftp readsftp
useradd -G sftp writesftp

现在用户 writesftp 应该能够将文件写入 /folder 并且用户 readsftp 应该只能读取文件夹 /folder 中的文件

读取的vipw文件

36 sftp:x:47173:47173::/data:/bin/sh
37 ft:x:1002:1002::/home/ft:/bin/bash
38 readsftp:x:47176:47173::/data:/bin/sh
39 writeuser:x:47177:47173::/data:/bin/sh

我改对了吗? (请注意身份证)

你能帮我用sticky bit、umask和chmod吗?在 /folder 文件夹中 我之前使用 chmod 更改了文件和文件夹权限,但我无法正确理解如何对用户进行操作。

提前致谢。

【问题讨论】:

  • 使用标准 Unix 权限完成此操作的唯一方法是将所有权设置为writesftp:sftp 和权限g+r,u+rw。否则,您需要使用 ACL,并通过扩展使用支持 ACL 的 FS。

标签: bash sftp chmod umask


【解决方案1】:

首先,您需要将文件夹的所有权(递归)转移到writeftp,并将组所有权转移到sftp:

sudo chown -R writeftp:sftp /path/to/folder

然后您为组启用所有文件夹的可执行权限和所有者的完全权限:

find /path/to/folder -type d -exec chmod 750 {} \;

并将所有文件的读取权限设置为组,并为所有文件的所有者设置读/写权限:

find /path/to/folder -type f -exec chmod 640 {} \;

按照上述步骤,您将解决您的问题,但是,您的问题有更好的解决方案。您可以在该文件系统上使用ACLs(访问控制列表)或使用SELinux,而后者的配置和维护要复杂得多。

【讨论】:

  • 感谢您的时间和帮助,我想澄清一下。这对我获得清晰的理解有很大帮助,因此通过执行这 3 个命令,我们得到的是写入用户现在是 sftp 的所有者并且具有 rwx 访问权限,而作为组 sftp 一部分的读取用户只有r-x 访问?然后为该组启用对所有文件夹的可执行权限和对所有者的完全权限: find /path/to/folder -type d -exec chmod 750 {} \;这是否可以访问 /path/to/folder 中的所有文件夹?还是系统上的所有文件夹?
  • 到/path/to/folder内的所有文件夹
猜你喜欢
  • 1970-01-01
  • 2015-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-21
  • 2016-03-19
  • 1970-01-01
相关资源
最近更新 更多