Answers:
您正在使用哪个文本编辑器?如果您是root用户并且知道密码,请尝试(在终端中)执行以下任一操作:
sudoedit /etc/dhcp/dhcpd.config
如果您使用的是基于终端的编辑器,例如nano
或将ssh插入服务器。gksudo <text editor here> /etc/dhcp/dhcpd.config
如果您使用的是基于GUI的编辑器,例如 gedit
无论哪种情况,您都需要在要求时首先提供您的root密码。
从Ubuntu 14.04开始,gksudo
默认情况下未安装。您必须gksu
从软件中心或通过安装软件包sudo apt-get install gksu
来获取它。
在Ubuntu 17.10中,Wayland是默认设置,而不是传统的X服务器,并且以root身份运行图形编辑器很困难。请参阅为什么不与Wayland一起使用gksu / gksudo或使用sudo启动图形应用程序?有关详细信息。
在Ubuntu 18.04中,gksudo
官方存储库中不提供该功能。使用sudo -H <text editor>
替代,或在admin://
协议:
gedit admin:///etc/dhcp/dhcpd.config
我想不出root会得到的情况permission denied
。
在12.04中,您可以这样: alt+ f2并gksudo
在出现的框中输入如下内容:
您将得到一个类似这样的框gedit
,然后输入并单击ok:
点击Open:
只需浏览到文件:
完成了
警告:有一个超级用户/ root用户是有原因的。这样一来,您就不会意外地将一些不好的东西或结构错误地放在重要的东西上。您应该格外小心,以root用户身份进行的任何编辑都是您要编辑的正确文件,并且语法完美。如果其他工具可用于编辑,建议使用那些工具。例如,使用visudo
terminal命令而不是手动编辑/etc/sudoers
。
有些可能弄乱了的文件很容易从中恢复。其他的则相对复杂,或者您必须使用故障恢复控制台和许多命令行。
是的,恢复控制台命令行似乎比这还要可怕。请注意。
root
如果使用将该文件设置为不可变,chattr
或者有时如果该磁盘是只读的,则可以获取拒绝的权限。
您可以通过几种不同的方式测试当前的shell是否以root身份运行
~/ > whoami
paul
~/ > sudo whoami
root
~/ > id
uid=1000(paul) gid=1000(paul) groups=1000(devs),4(adm),20(dialout),24(cdrom),…
~/ > sudo id
uid=0(root) gid=0(root) group=0(root)
其他答案提供了升级到root特权的好方法,因此我不再赘述。假设您是 root用户,但仍然无法编辑文件/etc/dhcp/dhcpd.config
-那么很可能有人或某个程序使用该chattr
程序使文件不可变。
具有“ i”属性的文件无法修改:无法删除或重命名,无法创建与此文件的链接,也不能向该文件写入数据。只有超级用户或拥有此
CAP_LINUX_IMMUTABLE
功能的进程才能设置或清除此属性。
您可以通过使用 lsattr
lsattr /etc/dhcp/dhcpd.config
如果确实是不可变的,则可以这样关闭它:
chattr -i /etc/dhcp/dhcpd.config
如果您使用的是Ubuntu 17.04或更高版本,建议使用gvfs admin backend。只需在admin://
要在“ 文本编辑器”或“ 文件”应用程序等应用程序中打开的完整文件路径的前面添加。
例如,要更改启动设置,请打开
admin:///etc/default/grub
如果您在使用Ubuntu 17.10使用默认韦兰,sudo
并gksu
为中老年答复中提到,这里将无法正常工作。
您可以通过环境变量1将sudo -e
其或其别名sudoedit
与您喜欢的(图形!)文本编辑器一起使用:VISUAL
VISUAL=gedit sudo -e /path/to/some-config-file.cfg
相当于
VISUAL=gedit sudoedit /path/to/some-config-file.cfg
当然,你可以使用任何你喜欢的其他编辑器,例如leafpad
,kate
或subl
。
某些编辑器提供了一个命令行选项来始终启动一个新实例,即使当前正在运行一个实例。由于sudoedit
等待编辑器进程终止以将更改应用于已编辑文件,因此如果您正在运行同一编辑器的其他实例,则可能有必要:
VISUAL='gedit -s'
。VISUAL='kate -n'
。pkexec
(您需要编辑文件…作为超级用户,此答案试图解决的确切问题)。sudo -H
etc。root
看起来或行为可接受的用户的用户应用程序配置数据上。1 EDITOR
或SUDO_EDITOR
也分别工作但优先级较低或较专业。有关详细信息,请参见手册页。
为了安全起见,请备份cp /etc/dhcp/dhcpd.config /$HOME/dhcpd.config.backup
并运行gksu gedit /etc/dhcp/dhcpd.config
替换gedit
为您选择的编辑器
您会收到这样的提示
在此输入您的密码。
将打开一个新窗口,您可以在此处编辑配置。
万一出现问题,您可以从主文件夹中的备份中将其还原。
由于Linux处理权限的方式,您会获得“拒绝权限”。
任何东西的$HOME
文件夹所属的用户,而几乎所有其他属于root。
在/etc/dhcp/dhcpd.conf
您尝试访问文件属于root,并且在大多数的文件/etc/
默认情况下,出于安全考虑,属于根。
您仍然可以通过提升权限来编辑此文件。
为此,您可以采用多种方法:
使用su
代表切换用户。没有任何属性,它用作切换到root帐户的命令,但是您需要输入要切换到的用户的密码,并且由于默认情况下root在Ubuntu上没有密码(有效地禁用了root帐户) ,除非您为root设置了密码,否则这是行不通的,不建议这样做。
使用sudo
可以提高您对一个命令的许可。通常仅用于命令行应用程序,例如CLI文本编辑器(如vim
)nano
等
使用gksu
可以提高您对一个命令的许可,但是与sudo
用于图形程序(如GUI文本编辑器)不同gedit
。它使用图形化提示来方便输入密码。