Bash Scripting - 如何设置将使用新文件创建的组?

时间:2009-08-24 08:40:33

标签: linux bash unix shell permissions

我正在做一个bash shell脚本,我想更改创建新文件的默认组。我知道您使用umask来更改权限。该团体有什么东西吗?

2 个答案:

答案 0 :(得分:164)

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

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

    请注意,这是为新子目录自动继承的(从 但是,Linux 3.10),如果子目录已经存在,则此更改 将不会应用于它们(使用-R标志)。

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

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

答案 1 :(得分:12)

  

newgrp命令用于在登录会话期间更改当前组ID。

在该会话中创建的新目录将具有由命令设置的组ID。

newgrp ...(1)