gpt4 book ai didi

linux - Bash 脚本 - 如何设置创建新文件的组?

转载 作者:IT老高 更新时间:2023-10-28 12:30:01 25 4
gpt4 key购买 nike

我正在编写一个 bash shell 脚本,我想更改创建新文件的默认组。我知道您使用 umask 来更改权限。有什么适合小组的吗?

最佳答案

有几种方法可以做到这一点:

  1. 您可以更改在特定文件中创建的所有文件的默认组通过在目录上设置 setgid 标志 (chmod g+s <dir>)。然后,目录中的新文件将使用目录(使用 chgrp <group> <dir> 设置)。这适用于任何程序在目录中创建文件。

    请注意,对于新的子目录,这是自动继承的(从Linux 3.10)。但是,如果子目录已经存在,则此更改不会应用于他们。假设子目录已经有正确的组,可以将 setgid 标志添加到其中: find . -type d -exec chmod g+s {} \; (由 Maciej Krawczyk 在评论中建议)

  2. 如果未设置 setgid 标志,则默认组将设置为当前创建过程的组 id。虽然这可以使用 newgrp 来设置命令,它创建了一个难以在 shell 中使用的新 shell脚本。如果要执行特定命令(或一组命令)对于已更改的组,使用命令 sg <group> <command> .

    sg不是 POSIX 标准命令,但在 Linux 上可用。

关于linux - Bash 脚本 - 如何设置创建新文件的组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1321168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com