linux - cd 后 umask 设置更改

标签 linux redhat umask

<分区>

我有一些奇怪的事情要报告。在我新配置的 RHEL5 服务器上,我的 shell 设置为/bin/bash 我在 .bashrc 中将 umask 设置为 002。

当我第一次登录时,umask 似乎工作正常:

$ touch a
$ ls -l a
-rw-rw-r-- etc.....

如果我创建另一个文件,它会起作用:

$ touch b
$ ls -l b
-rw-rw-r-- etc.....

但是...如果我更改目录(到任何目录),则 umask 会返回 022:

$ cd /var/www/whatever
$ touch c
$ ls -l c
-rw-r--r-- etc.....

完全奇怪。

有人见过这样的东西吗?他们能想到要检查的东西吗?

为什么在 cd 之后 umask 设置会改变?

谢谢,

-查理

最佳答案

感谢 Barry Brown 的上述评论 - 我被这个问题搞得焦头烂额(在 OSX 上,而不是在 Linux 上),在我的案例中确实是 rvm 的罪魁祸首。 检查您的 .profile、.bash_profile 等是否有这样一行:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

将其注释掉,重新启动您的 shell,这应该可以解决问题。 我不知道 rvm 如此粗鲁和侵扰。最好只在需要时加载它,而不是为每个 shell 加载它。

关于linux - cd 后 umask 设置更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11995894/

相关文章:

linux - Linux cpu 使用的 psutil 和 sar 有什么区别?

c++ - 如何使共享库符号强大?

linux - `sudo yum update` throws 需要...删除...已过时

c - umask() 什么时候有用?

file-permissions - 为 sshfs 挂载设置 umask

c++ - 如何在 RHEL 上为新的 Boost 版本构建/部署 RPM?

c++ - 如何通过 g++ 创建共享库

c - 从 C 中传递的日期时间生成 UNIX 时间戳

hadoop - EC2 Redhat Cloudera Manager CDH群集安装|主机名无法解析

linux - unix下文件的写权限