使用超级用户权限编辑文件


54

当您必须编辑系统文件时,通常是您之前与普通用户一起启动Emacs的情况,因此该文件将受到写保护。我该怎么做才能获得root特权?我的意思是M-x sudo从苦恼开始。

我不想以超级用户身份启动Emacs,也不想退出它。

Answers:


59

使用C-x C-f并键入/su::/etc/hostname/sudo::/etc/hostname适用。

它使用随Emacs一起分发的TRAMP软件包。该软件包提供对远程文件的访问,更普遍的是,可以访问Emacs无法直接打开的文件。


1
谢谢。的含义是::什么?
smonff 2014年

7
:是分隔符;我们第二次提供它以表明没有更多参数。/su:otheruser@localhost:例如,您可以。
artagnon 2014年

5
/sudo::是流浪汉的速记sudo:root@<hostname>:
phils

9

find-file与流浪汉一起使用。在提示符下,/sudo::/etc/ssh/ssh_config将使用sudo和一个子外壳以root权限打开该文件。首次使用sudo时,它将提示您输入密码,但是在该会话关闭之前,您可以通过在现有/sudo::命令前添加具有这些权限的任何文件。

有关更多详细信息,请参见http://www.gnu.org/software/tramp/


3

如果您使用该ivy软件包,并且已配置counsel-find-file了replace find-file,那么已经为您预先配置的“ ivy操作”之一就是以根用户身份编辑该文件。该hydra操作的默认击键为r


2

如今有许多软件包可以解决此问题(截至2018年)。他们之中有一些是:

  • sudo-edit,允许在已打开的只读文件上切换编辑权限。只需M-x sudo输入密码,即可完成。经过多年的使用,我认为这种需求更加方便。sudo-edit允许您以任何用户身份打开文件,但如果未提供,则默认为sudo。
  • dired-toggle-sudo。这是我问这个问题后发现的第一个打包解决方案。它是面向Dired的,因此,如果您更喜欢面向文件的版本,请参阅此列表的第一个项目符号。
  • Melpa上还有其他解决方案

2

如果您使用头盔。您不需要任何外部软件包/其他配置。它开箱即用。

在内部helm-find-files您可以调用find file as root绑定到的内容C-c r。这适用于helm-find-files会话中的文件或目录。

如果您不想在每次打开根文件/目录时都键入密码。将以下行添加到您的~/.authinfo.gpg

machine localhost port sudo login root password xxxxxx
machine your_machine_name port sudo login root password xxxxx

资源

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.