Bash脚本 – 如何设置将创build新文件的组?

我正在做一个bash shell脚本,我想改变创build新文件的默认组。 我知道你使用umask来改变权限。 这个小组有什么东西吗?

newgrp (1)

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

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

    请注意,这是自动inheritance的新子目录(从Linux 3.10开始),但是,如果子目录已经存在,这个改变将不会被应用到它们(使用-R标志)。

  2. 如果未设置setgid标志,则将默认组设置为创build进程的当前组标识。 尽pipe这可以使用newgrp命令来设置,但是会创build一个在shell脚本中难以使用的新shell。 如果要使用更改的组执行特定命令(或一组命令),请使用命令sg <group> <command>

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