我希望umask
在用户切换到非默认组时对他们更加宽容。只是为了说明我的意思:
$ 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
都大于或等于这个值。这是最好的方法吗?或者有人有更有意义的方法吗?
答案1
我认为你的解决方案很好。在 shell 脚本中,你可以使用:
(umask 022;exec sg wheel )
测试:
umask 002
umask
( umask 022; exec sg wheel umask)
umask
有关替代解决方案,请参阅我的类似帖子:如何在 Ubuntu 9.10 上为编辑 /var/www 中的多个站点的多个用户设置权限结构?
答案2
您可以创建一个脚本 mysg,执行 sg arg,然后执行 umask X,其中 X 是 002 或 022,具体取决于输入的组。这可能不是最优雅的解决方案...