umask似乎因用户而异

我有一个开发Ubuntu系统,我有几个用户:我自己(具有完整的sudo)和约5个其他用户。 (我已经build立了系统,所以这方面的一切仍然是默认设置)

我试图设置系统,以便多个人可以通过使用分组在一个目录中进行协作,我希望默认权限为664.但是,当某些用户编辑文件时,权限为644。

经过大量调查,大多数用户在0002上有一个umask(在提示时检查),当他们创build文件时,他们是664(如预期的那样),但是有2个(我和另外一个)拥有0022 umask(所以文件644,没有人可以写信给他们)。

我到处都找,但无法弄清楚为什么一些用户用不同的umask结束,例如没有任何.bash_profile或类似的东西)

任何想法的差异来源?

在/ etc / bashrc中

if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then umask 002 else umask 022 fi 

/ etc / profile文件

 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then umask 002 else umask 022 fi 

编辑:

我的(坏)〜/ .bashrc

 # .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions export LANG=en_US.utf8 

其他用户(好).bashrc

 # .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions 

从你提供的文件来看,/ etc / bashrc中的testing语句对大多数用户来说似乎是正确的,但是对于你和其他“坏”用户来说却是错误的。 这可能有两个可能的原因:

  • 您和另一个“不好”的帐户的UID低于200
  • 您和另一个“不好”的帐户似乎是在一个默认的组名称不同于您的用户名。

您可以通过查看以下内容的输出来进行testing:

  • 输出“id -u”(你的用户名)命令并检查输出是否低于200
  • “id -un”(你的用户名)和“id -gn”(你的组名)的输出,并检查它们是否不同

umask可能正在设置

在/ etc / bashrc中

要么

/ etc / profile文件