共享的组文件夹权限问题

时间:2020-03-07 01:03:10

标签: linux permissions

我正在为“开发”组中的用户创建一个共享文件夹。我在使用一系列命令来执行此操作时遇到麻烦,我需要设置以下权限:

  • 只有开发组的成员可以在其中创建文件
  • 用户只能删除他们创建的文件和目录
  • 共享目录中的任何新文件/文件夹都与该组关联
  • 论坛所有者只能阅读
  • 所有者可以读取文件,但其他人无法进行读/写访问

我可以使用哪些命令系列来完成此任务? 我只是似乎无法使用chmod和来实现此目的,当我以其他用户身份登录时,即使设置了粘性位,我也不断获得拒绝查看该文件夹或创建文件的权限。

1 个答案:

答案 0 :(得分:1)

天使和弦,

首先,您必须在请求中声明您是否具有操作文件系统权限的 root 特权(登录,sudo)。

现在您需要将任务拆分为较小的块:

a。将用户添加到开发人员组(dev_group-假定已经存在)

AlwaysScrollable()

b。创建开发者组目录

import Foundation

extension Data {
    var prettyPrintedJSONString: NSString? { /// NSString gives us a nice sanitized debugDescription
        guard let object = try? JSONSerialization.jsonObject(with: self, options: []),
              let data = try? JSONSerialization.data(withJSONObject: object, options: [.prettyPrinted]),
              let prettyPrintedString = NSString(data: data, encoding: String.Encoding.utf8.rawValue) else { return nil }

        return prettyPrintedString
    }
}


let str = "[{\"userId\" : \"5e633967c04aff49e5e22c5b\", \"onlineStatus\" : 1 }]".data(using: .utf8)!.prettyPrintedJSONString!
debugPrint(str)

c。在文件夹上分配权限:请参见doc

  • 所有者root.dev_group(根)
  • 所有者rwx-可以读取,创建,更改到目录
  • rwx组-可以读取,创建,更改到目录
  • 其他/世界r-x-只能读取并更改到目录(检查是否需要)
  • 设置SGID-新创建的文件/目录从目录继承组
  • 将'stiky'位置1-只能操作自己的文件/目录
root# for user in (user1 user2 user3 ... usern)
do
    usermod -a -G dev_group $user
done

mkdir /some/path/to/developer/group/dir

注意:对目录的执行权限允许更改为目录

d。为每个用户定义umask

  • 用户rwx
  • r组-
  • 其他---

(在shell初始化脚本中为.bashrc .profile...。)

chown root.dev_group [path to directory]     # owner root.dev_group
chmod u=rwx,g=rwx,o=rx [path to directory]   # user rwx; group rwx; other r-x
chmod g+s [path to directory]                # SGID bit inherit group from directory for new files and directories
chmod +t [path to directory]                 # stiky bit manipulate own files and directories only

注意::如果由于任何正当原因umask必须不同,则用户必须在创建时更改权限,在新文件/目录上复制时间

使用访问控制列表aclSELinux contexts可以实现更细化的访问限制。