巴什脚本 - 如何设置新的文件将被创建的组?(Bash Scripting - How to set

2019-07-03 13:37发布

我在做一个bash shell脚本,我想改变这种新的文件作为创建的默认组。 我知道你用umask更改权限。 有什么该组?

Answer 1:

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

该会话中创建新的目录将通过命令设置组ID。

newgrp (1)



Answer 2:

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

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

    请注意,这是自动继承新的子目录(如Linux的3.10),但是,如果子目录已经存在,这种变化将不会应用到他们(使用-R标志用于)。

  2. 如果没有设置setgid标记的,则默认组将被设置为创建进程的当前组ID。 虽然这可以通过设置newgrp命令,创建一个新的外壳是难以shell脚本中使用。 如果要执行一个特定的指令(或命令集)与改变组,使用命令sg <group> <command>

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



文章来源: Bash Scripting - How to set the group that new files will be created with?