随着GHC 8.0.2如果我在开始此发出警告ghci的在我的项目目录中创建一个.ghci文件模式644:项目具体ghci的初始化文件的权限警告
*** WARNING: .ghci is writable by someone else, IGNORING!
Suggested fix: execute 'chmod go-w .ghci'
在采用这个建议,在启动时ghci然后我们得到:
*** WARNING: . is writable by someone else, IGNORING!
Suggested fix: execute 'chmod go-w .'
通过此建议使警告消失。这很好,但是这很乏味和烦人,特别是因为使用堆栈,默认创建的目录权限并不是ghci看起来想要的。
为什么添加一个.ghci文件会导致这种行为,ghci担心的是什么?没有本地目录.ghci文件ghci不会抗议权限。
虽然我认为ghc不应该指示我如何管理我个人系统的安全性,但我现在明白ghci可以用'!'运行任意shell命令。命令,并且如果本地.ghci包含在外部下载的软件包中,这些命令可能会在不知不觉中注入到会话中。所以设计决策正试图避免这种风险。我同意设置一个更严格的umask就是答案,但人们往往不会在单个用户工作站上自动执行此操作。 – andro