我有一个开发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语句对大多数用户来说似乎是正确的,但是对于你和其他“坏”用户来说却是错误的。 这可能有两个可能的原因:
您可以通过查看以下内容的输出来进行testing:
umask可能正在设置
在/ etc / bashrc中
要么
/ etc / profile文件