我目前在Windows Vista SP1中使用GNU Emacs23.0.93.1。在我的服务器文件中,我调用了(server-start)
,这导致了一个错误,消息是目录~/.emacs.d/ .emacs不安全。有没有人看过这个并知道解决方法或解决办法?而不是关闭服务器;)
下面是堆栈跟踪:
Debugger entered--Lisp error: (error "The directory ~/.emacs.d/server is unsafe")
signal(error ("The directory ~/.emacs.d/server is unsafe"))
error("The directory %s is unsafe" "~/.emacs.d/server")
server-ensure-safe-dir("~\\.emacs.d\\server\\")
server-start(nil)
call-interactively(server-start t nil)
execute-extended-command(nil)
call-interactively(execute-extended-command nil nil)
发布于 2010-05-31 22:37:48
我在EmacsWiki上找到了这个解决方案:
“问题出在~/.emacs.d/server目录的所有权上,而您在您的帐户上也有”Administrators“权限。创建目录~/.emacs.d/server并将此目录的所有者设置为您的登录名,问题就解决了。因为我有一个”荷兰语“版本的Windows 7,我不知道确切的英文术语,但下面是步骤:
在~/.emacs.d/server上单击鼠标右键并选择“属性”(菜单中的最后一项)。从属性中选择选项卡“安全”,然后选择按钮“高级”。然后选择“owner”选项卡并将owner从Administrators (<your-pc-name>\Administrators)
更改为<your-login-name> (<your-pc-name>\<your-login-name>
。现在,服务器代码将接受此目录为安全目录,因为您是所有者。
希望这对你们所有人都有帮助,不管怎样,它解决了我的问题。
W.K.R.鲁特弗卢特“
它肯定能在Vista上工作,Emacs为23.2.1。
发布于 2009-05-20 01:56:21
这是Windows上的一个已知Emacs错误。一种解决方法是在server.el中注释掉服务器-确保-安全-目录中的这一行,这样你就可以在更改后进行字节重新编译:
;; FIXME: Busted on Windows.
;; (eql (nth 2 attrs) (user-uid))
发布于 2009-08-21 18:32:54
为了避免攻击lisp目录,您可以将以下内容添加到您的.emacs中:
(require 'server) (and (>= emacs-major-version 23) (defun server-ensure-safe-dir (dir) "Noop" t))
https://stackoverflow.com/questions/885793
复制相似问题