![用户创建文件和目录时的默认组](https://linux22.com/image/1194873/%E7%94%A8%E6%88%B7%E5%88%9B%E5%BB%BA%E6%96%87%E4%BB%B6%E5%92%8C%E7%9B%AE%E5%BD%95%E6%97%B6%E7%9A%84%E9%BB%98%E8%AE%A4%E7%BB%84.png)
我有一个用户deployment
,他的默认组设置为www-data
。他也属于组xxxxx
。
然后我在用户部署下有一个 cron 脚本,该脚本运行时php script
会生成一些动态文件。这些文件设置了错误的组,xxxxx
而我想www-data
为它们设置组。我以为在用户下生成的文件会设置他的默认组。
我该怎么做才能强制他设置我想要设置的群组?
答案1
您似乎已更改用户的主要组,但尚未注销并重新登录。
对用户主要组的更改不会在用户当前登录会话下生效,但会在您下次以该用户身份登录时生效。
当前内核的用户凭证不会即时更改...它们仅在新登录时更新(暂时更改身份su
或被sudo
视为新登录)。
主要原因是用户会话实际上是一组正在运行的进程(并且必须)在用户登录时创建,和其他一切一样(安全方面)这些进程需要凭证才能运行并完成其工作,因此它们从用户那里继承凭证...您可以看到它们的样子,例如:
ps x -o user,group,pid,command
因此,在更改已登录用户的凭据后,您需要通过注销然后再次登录来结束当前用户会话,以便新会话下的用户进程将使用新凭据运行。