gedit各种出错

本文介绍了gedit在Ubuntu系统中遇到的几种常见错误及其解决方法,包括缺少目录导致的警告、显示权限问题以及su命令的不同用法引起的错误。

gedit各种出错

        相信从ubuntu Gnome桌面环境走过来的人都对gedit很熟悉,但是这么简单的东西也会出错,作者只遇到了第一个问题,其他的拿过来以防万一。不过从这些案例里面可以看出,其实真的不是Gedit的错,而是系统的错。下面让作者意义分析。

案例一:

症状:

        sudo gedit  /boot/grub/grub.cfg

        (gedit:5943): Gtk-WARNING **: Attempting to store changes into `/root/.local/share/recently-used.xbel', but failed: 创建文件“/root/.local/share/recently-used.xbel.FVTZ9V”失败:没有那个文件或目录

        (gedit:5943): Gtk-WARNING **: Attempting to set the permissions of `/root/.local/share/recently-used.xbel', but failed: 没有那个文件或目录解决:        sudo mkdir -p /root/.local/share/

分析:

        由于ubuntu默认不启用root账户,所以root就从来没登录过,所以就没有/root/.local/share/目录在ubuntu 11.04中运行所以会出错,只要建立这个目录就解决了。

案例二:

症状:

        sudo gedit

出现以下错误:        No protocol specified        (gedit:3062): Gtk-WARNING **: cannot open display: :0.0解决:        执行:sudo xhost +分析:        当使用su 到另外一个用户运行某个程序,而这个程序又要有图形显示的时候,就有可能有下面提示:        Invalid MIT-MAGIC-COOKIE-1 key        (:3825): Gtk-WARNING **: cannot open display: :0.0

        这是因为Xserver默认情况下不允许别的用户的图形程序的图形显示在当前屏幕上. 如果需要别的用户的图形显示在当前屏幕上, 则应以当前登陆的用户, 也就是切换身份前的用户执行如下命令。

 案例三:

症状:

        运行gedit,普通用户下不会出错,但在su到root下会出现如下错误:

        (gedit:6556): EggSMClient-WARNING **: Failed to connect to the session manager: None of the authentication protocols specified are supported

        GLib-GIO:ERROR:/build/buildd/glib2.0-2.26.0/gio/gdbusconnection.c:2270:initable_init: assertion failed: (connection->initialization_error == NULL)

 解决:

        注意区分su和su-

分析:

su与su -命令的差别: 

su   只能切换到管理员用户权限,不使用管理员的登陆脚本和搜索路径 

su - 不但能切换到管理员权限而且使用管理员登陆脚本和搜索路径 

实例: 

$pwd                                                  但是如果换成su -的话结果如下:            $pwd

/home/Yewanth (当前用户目录)                                                                              /home/Yewanth (当前用户目录) 

$su #pwd                  (再次查看路径)                                                                      $su - #pwd                    (再次查看路径) 

/home/Yewanth (还是当前用户目录)                                                                     /root                   (切换到超级用户目录)

 注:这个具体情况不清楚,大家随意。



<think>好的,我现在需要回答用户关于“gedit /etc/sudoers”的问题。首先,我得理解用户的需求。用户可能想编辑sudoers文件,但直接使用gedit可能会有问题,因为通常建议使用visudo命令来编辑这个文件,因为它会检查语法错误。所以,我需要先解释为什么直接编辑可能有风险。 接下来,用户输入的命令是“gedit /etc/sudoers”,这涉及到权限问题。因为/etc/sudoers默认只有root有写权限,普通用户用gedit打开可能无法保存更改。所以需要指导用户如何正确获取权限,比如使用sudo gedit,但这里要提醒用户谨慎操作,并推荐使用visudo。 然后,我需要分步骤说明如何正确编辑sudoers文件。第一步应该是强调使用visudo的重要性,解释它的语法检查功能。第二步,如果用户坚持用gedit,需要指导如何用sudo提升权限,但也要警告可能的风险。第三步,要提到备份文件,防止出错。第四步,验证修改后的语法是否正确,特别是如果用户没用visudo的话。 另外,需要注意常见错误,比如错误的语法或权限问题,可能导致所有sudo命令失效,这时候需要进入恢复模式或者用root权限修复。同时,提醒用户不要给普通用户过高的权限,比如NOPASSWD选项要谨慎使用。 最后,总结重点,再次推荐visudo,并强调谨慎修改sudoers文件的重要性。整个过程要保持结构清晰,用中文逐步解释,确保用户理解每个步骤的风险和正确方法。</think>好的,我将分步骤为您解释 `gedit /etc/sudoers` 的作用、潜在风险及正确操作方式: --- ### 1️⃣ **命令解析** - **`/etc/sudoers`** 是 Linux 系统中控制 `sudo` 权限的核心配置文件,定义了哪些用户/组能以何种权限执行特权命令。 - **`gedit`** 是图形化文本编辑器。直接运行 `gedit /etc/sudoers` 会因权限不足无法保存修改(该文件默认仅 `root` 可写)。 --- ### 2️⃣ **为何不推荐直接编辑?** - ❌ **语法风险**:该文件对格式极其敏感,一个拼写错误可能导致所有 `sudo` 命令失效。 - ✅ **官方推荐工具**:应使用 `visudo` 命令编辑,它会自动检查语法并避免并发修改: ```bash sudo visudo ``` --- ### 3️⃣ **强行使用 gedit 的方法(需谨慎)** 若坚持使用图形编辑器,需通过 `sudo` 提权: ```bash sudo gedit /etc/sudoers ``` **注意事项:** - 编辑前备份文件:`sudo cp /etc/sudoers ~/sudoers.bak` - 保存后验证语法:`sudo visudo -c` --- ### 4️⃣ **常见配置示例** 如需允许用户 `alice` 无需密码执行 `apt` 命令: ```bash # 在文件末尾添加: alice ALL=(root) NOPASSWD: /usr/bin/apt ``` --- ### 5️⃣ **错误恢复** 若误操作导致 `sudo` 失效: 1. 重启系统,进入恢复模式(Recovery Mode) 2. 挂载根文件系统为可写:`mount -o remount,rw /` 3. 用 `visudo` 修复文件 --- ### 📝 **总结** - **优先使用**:`sudo visudo` - **谨慎操作**:修改前备份,避免开放过高权限 - **紧急情况**:熟悉系统恢复流程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值