如何在使用“sudo gedit”时阻止 root 拥有的文件

如何在使用“sudo gedit”时阻止 root 拥有的文件

使用时,我总是需要在或gedit中编辑文件,而这需要 root 权限。因此我在左侧创建了一个 Launcher 快捷方式,命令为。/etc//usr/sudo gedit

所以每次我点击左侧启动器上的图标时,gedit都会以 root 身份启动。但问题是,当我修改其他文件(例如 中的文件)时/home,文件的所有者也会更改为 root。我不想这样做,我只想保存此文件而不修改其所有者,并且我不想每次都以geditroot 身份重新启动以修改 root 拥有的文件。怎么办?

答案1

向您的启动器添加快捷方式。

我不会更改gedit启动器的主命令。请执行以下操作:

  1. 切勿编辑默认启动器,首先将其从复制/usr/share/applications~/.local/share/applications

    cp /usr/share/applications/gedit.desktop ~/.local/share/applications/gedit.desktop
    
  2. 使用 gedit 编辑文件(不是使用gksudo

    gedit ~/.local/share/applications/gedit.desktop
    

    查找以 开头的行Actions=,添加gedit with gksu;

    Actions=Window;Document;gedit with gksu;
    
  3. 在文件的最末尾添加快捷方式部分:

    [Desktop Action gedit with gksu]
    Name=gedit with gksu
    Exec=gksu gedit
    OnlyShowIn=Unity;
    
  4. 完成,现在如果您单击图标,gedit则会“正常”启动,同时您可以gksu gedit使用快捷方式:

    在此处输入图片描述



直接浏览要编辑的文件

gksu如果您经常使用 gedit编辑文件,您也可以直接Zenity从启动器调用 ( ) 浏览器,使用 打开文件gksu。您可以在打开文件时“省去”一步gksu

在此处输入图片描述

在此处输入图片描述

  1. .desktop像第一个选项一样复制并打开本地文件
  2. 查找以 开头的行Actions=,添加gksu gedit with filebrowser;

    Actions=Window;Document;gksu gedit with filebrowser;
    
  3. 在文件的最末尾,添加快捷方式部分:

    [Desktop Action gksu gedit with filebrowser]
    Name=gksu gedit with filebrowser
    Exec=sh -c "gksu gedit $(zenity --file-selection --title='Select a file')"
    OnlyShowIn=Unity;
    

笔记

gksu默认情况下未安装,如果您使用以下命令,则可能需要安装它:

sudo apt-get install gksu

答案2

您可以通过打开终端并输入“chown user /path/to/file”来修改所有者,正如 Byte Commander 所述。但是,设置所有者还不够。因为您正在访问放置在只有根权限访问文件夹中的根权限文件。您需要授予自己完全权限。

要使你自己成为该文件的 root,你只需要在终端中输入

chmod u+aw filenamewithextension

您必须在文件所在位置执行此操作。

此后,您无需 sudo 即可使用 gedit,并且系统永远不会修改所有者。千万不要这么做,sudo gedit否则系统会修改所有者!

相关内容