我有一个开发版 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/配置文件