Bash 允许2个不同的用户访问一个文件夹

Bash 允许2个不同的用户访问一个文件夹,bash,sftp,chmod,umask,Bash,Sftp,Chmod,Umask,我需要向2个用户授予访问权限,一个具有读取权限,另一个具有对特定文件夹(/folder)的写入权限。两个用户都应该在同一组中(sftp) 具有读取权限的用户:readsftp 具有写访问权限的用户:writesftp 我已经做了 useradd -G sftp readsftp useradd -G sftp writesftp 现在,用户writesftp应该能够将文件写入/文件夹,而用户readsftp应该只能读取文件夹/文件夹中的文件 vipw文件将被读取 36 sftp:x:47173

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

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

我已经做了

useradd -G sftp readsftp
useradd -G sftp writesftp
现在,用户writesftp应该能够将文件写入/文件夹,而用户readsftp应该只能读取文件夹/文件夹中的文件

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
我改对了吗? (请注意ID)

你能帮我用粘性钻头,umask和chmod吗?在/文件夹中 我以前使用chmod更改过文件和文件夹权限,我无法正确理解如何使用wrt用户


提前感谢。

首先,您需要将文件夹的所有权(递归)转移到
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 {} \;


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

使用标准Unix权限实现这一点的唯一方法是将所有权设置为
writesftp:sftp
和权限设置为
g+r,u+rw
。否则,您需要使用ACL,并进一步使用支持ACL的FS。感谢您的时间和帮助,我想澄清一下这一点。这将有助于我清楚地理解这3个命令,因此通过执行这3个命令,我们可以了解到,写用户现在是sftp的所有者,并且具有rwx访问权限,而作为组sftp一部分的读用户只有r-x访问权限?然后为组启用对所有文件夹的可执行权限和对所有者的完全权限:find/path/to/folder-type d-exec chmod 750{};这是否允许访问/path/to/folder中的所有文件夹?或者系统上的所有文件夹?到
/path/To/folder