umask 似乎因用户而异

umask 似乎因用户而异

我有一个开发版 Ubuntu 系统,其中有几个用户:我自己(具有完整 sudo)和大约 5 个其他用户。(我已经设置了系统,因此这方面的所有内容仍为默认设置)

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

经过大量调查后发现,大多数用户的 umask(在提示符下检查)都是 0002,而当他们创建文件时,其 umask 是 664(如预期的那样),但是有两个人(我和另一个人)的 umask 是 0022(因此,创建的文件的 umask 是 644,其他任何人都无法写入这些文件)。

我到处都找过了,但就是搞不明白为什么几个用户最终会使用不同的 umask,例如,没有 .bash_profile 或类似的东西)

对于差异的根源您有什么想法吗?

在 /etc/bashrc 中

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

/etc/配置文件

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

答案1

从您提供的文件来看,/etc/bashrc 中的测试语句似乎对大多数用户而言为真,但对您和其他“坏”用户而言为假。这可能有两个原因:

  • 您和其他“坏”账户的 UID 均低于 200
  • 您和其他“坏”帐户似乎位于一个默认组中,该组的名称与您的用户名不同。

您可以通过查看以下内容的输出来测试这一点:

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

答案2

umask 可能被设置为

在 /etc/bashrc 中

或者

/etc/配置文件

相关内容