Ror*_*ory 68 unix linux permissions bash shell
我正在做一个bash shell脚本,我想更改创建新文件的默认组.我知道你umask
用来改变权限.这群人有什么东西吗?
mar*_*k4o 168
有几种方法可以做到这一点:
您可以通过在目录(chmod g+s _dir_
)上设置setgid标志来更改在特定目录中创建的所有文件的默认组.然后将使用目录组(使用设置chgrp <group> <dir>
)创建目录中的新文件.这适用于在目录中创建文件的任何程序.
请注意,这是自动继承的新子目录(从Linux 3.10开始),但是,如果子目录已经存在,则此更改将不会应用于它们(使用该-R
标志).
如果未设置setgid标志,则默认组将设置为创建进程的当前组ID.虽然可以使用该newgrp
命令设置,但这会创建一个难以在shell脚本中使用的新shell.如果要使用更改的组执行特定命令(或命令集),请使用该命令sg <group> <command>
.
sg
不是POSIX标准命令,但在Linux上可用.