当我重新登录时,我的 umask 是002
。至少有一段时间是这样。然后在某个时候,我不知道什么时候,它会恢复为000
。这非常不方便,我现在一直担心我的主目录中会丢失具有奇怪权限的文件和文件夹。
恢复到出厂设置000
可能在使用几分钟后发生,也可能在使用几天后发生。在我第一次安装 ubuntu 几周后,这种情况经常发生,然后逐渐平息,就在过去的几天里,这个问题又出现了。
我可以将其重新设置002
为$ umask 002
但是这只对当前 shell 有效(正如预期的那样)。
更多信息:
- 即使
002
我的 f7 登录处于000
/etc/profile
说 umask 现在由 pam_umask 处理/etc/login.defs
有UMASK 022
和USERGROUPS_ENAB yes
我正在运行带有 XMonad 和 (oh-my-)zsh 的 Ubuntu 13.10。
如果这有用的话,这是我的/etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sdb8 during installation
UUID=96f989e0-ee94-4bff-9663-3fa479a83ad4 / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/sdb1 during installation
UUID=7682-B8AD /boot/efi vfat defaults 0 1
# swap was on /dev/sdb7 during installation
UUID=0d7d57af-9a31-481e-9da4-1032c94f57e9 none swap sw 0 0
以下是我的 crontab 的精简版本crontab -l
* * * * * cd /home/miles/code/Checkin/ && ./node_modules/.bin/coffee ./client.coffee -n attercop -h secret1.com -p 8888
* * * * * cd /home/miles/code/Checkin/ && ./node_modules/.bin/coffee ./client.coffee -n attercop -h secret2.com -p 8888
client.coffee
只是一个发送 http 请求的脚本。
我的 root crontab 来自sudo crontab -l
报告no crontab for root
答案1
对我来说,这个问题是由 Sublime Text 3 的 Terminal 插件引起的,该插件用于从 sublime 文件启动终端。当 Terminal 启动首个且唯一000
gnome-terminal 的窗口,那么它就继承了sublime的 umask 。
希望这个答案能够对那些没有遇到与我相同问题的人有所帮助,我将重申一些关于如何解决这个问题的建议,这些建议是从上面的评论中收集来的:
- 查看你的 rc 文件(
.bashrc
、.zshrc
)以查看是否有错误umask
调用。 - 如果您使用 bash,请尝试
bash -x -l -i -c 'exit' 2>&1 | grep umask
从 rc 文件中找到对 umask 的调用。 - 如果您使用 zsh,请尝试从 rc 文件中
zsh -x -l -i -c 'exit' 2>&1 | grep umask
找到调用。umask
- 检查挂载时是否设置了 umask 值
$HOME
。查看/etc/fstab
- 检查 cron 中是否有任何奇怪的运行程序可能会改变你的 umask。
crontab -l
和sudo crontab -l
。 - 也许尝试使用
audit
来查找神秘的 umask 更改的来源。sudo auditctl -A auditctl exit,always -S umask
并查看/var/log/kern.log