如何在用户login到备用组时更改umask?

我希望umask在用户切换到非默认组时更加宽容。 只是为了certificate我的意思:

 $ id uid=500(beamin) gid=500(beamin) groups=10(wheel) $ umask 0022 $ sg wheel $ umask # I want this to now be 0002 instead 0022 

我正在考虑添加一个脚本到/etc/profile.d/看起来像这样:

 if [ "`id -u`" -ge 500 ] && [ "`id -g`" -ne "`id -u`" ]; then umask 0002 fi 

我得到了500因为我们所有的用户uid都大于或等uid 。 这是做这件事的最好方法吗? 还是有人有更有意义的东西?

我认为你的解决scheme是好的。 在shell脚本中,您可以使用:

 (umask 022;exec sg wheel ) 

testing:

 umask 002 umask ( umask 022; exec sg wheel umask) umask 

有关替代解决scheme,请参阅我的类似post: 如何在Ubuntu 9.10上为/ var / www中的多个用户编辑多个站点的权限结构?

你可以创build一个脚本mysg,执行sg arg,然后是umask X,其中X是002或022,具体取决于input的是哪个组。 可能不是最优雅的解决scheme…