Bash脚本 – 如何设置将创build新文件的组?
我正在做一个bash shell脚本,我想改变创build新文件的默认组。 我知道你使用umask
来改变权限。 这个小组有什么东西吗?
newgrp
(1)
有几个方法可以做到这一点:
-
您可以通过在目录(
chmod g+s _dir_
)上设置setgid标志来更改在特定目录中创build的所有文件的默认组。 然后使用chgrp <group> <dir>
设置目录组创build目录中的新文件。 这适用于在目录中创build文件的任何程序。请注意,这是自动inheritance的新子目录(从Linux 3.10开始),但是,如果子目录已经存在,这个改变将不会被应用到它们(使用
-R
标志)。 -
如果未设置setgid标志,则将默认组设置为创build进程的当前组标识。 尽pipe这可以使用
newgrp
命令来设置,但是会创build一个在shell脚本中难以使用的新shell。 如果要使用更改的组执行特定命令(或一组命令),请使用命令sg <group> <command>
。sg
不是POSIX标准命令,但在Linux上可用。