我在做一个bash shell脚本,我想改变这种新的文件作为创建的默认组。 我知道你用umask
更改权限。 有什么该组?
Answer 1:
的
newgrp
命令用于登录会话期间改变当前组ID。
该会话中创建新的目录将通过命令设置组ID。
newgrp
(1)
Answer 2:
有几个方法可以做到这一点:
您可以通过设置setgid标记上的目录(更改特定目录中创建的所有文件默认组
chmod g+s _dir_
)。 目录中的新文件将被与该组的目录(设定使用创建chgrp <group> <dir>
这适用于在目录中创建文件的任何程序。请注意,这是自动继承新的子目录(如Linux的3.10),但是,如果子目录已经存在,这种变化将不会应用到他们(使用
-R
标志用于)。如果没有设置setgid标记的,则默认组将被设置为创建进程的当前组ID。 虽然这可以通过设置
newgrp
命令,创建一个新的外壳是难以shell脚本中使用。 如果要执行一个特定的指令(或命令集)与改变组,使用命令sg <group> <command>
。sg
是不是POSIX标准的命令,但在Linux上使用。
文章来源: Bash Scripting - How to set the group that new files will be created with?