使用`sudo gedit`时如何防止root拥有的文件

dem*_*guy 3 permissions gedit root launcher ownership

使用时gedit,我总是需要编辑文件/etc//usr/需要是 root 的文件。所以我用 command 在左侧创建了一个 Launcher 快捷方式sudo gedit

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

Jac*_*ijm 8

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

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

  1. 永远不要编辑默认启动,先复制从一个/usr/share/applications~/.local/share/applications

    cp /usr/share/applications/gedit.desktop ~/.local/share/applications/gedit.desktop
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用... gedit 编辑文件(不使用gksudo

    gedit ~/.local/share/applications/gedit.desktop
    
    Run Code Online (Sandbox Code Playgroud)

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

    Actions=Window;Document;gedit with gksu;
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在文件的最后添加快捷方式部分:

    [Desktop Action gedit with gksu]
    Name=gedit with gksu
    Exec=gksu gedit
    OnlyShowIn=Unity;
    
    Run Code Online (Sandbox Code Playgroud)
  4. 完成,现在如果您单击该图标,将gedit“正常”启动,同时您gksu gedit可以作为快捷方式使用:

    在此处输入图片说明



直接浏览要编辑的文件

如果你经常gksu用 gedit编辑文件,你也可以直接Zenity从启动器调用一个 ( ) 浏览器,用gksu. 您可以在打开文件时“保存”一个步骤gksu

在此处输入图片说明

在此处输入图片说明

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

    Actions=Window;Document;gksu gedit with filebrowser;
    
    Run Code Online (Sandbox Code Playgroud)
  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;
    
    Run Code Online (Sandbox Code Playgroud)

笔记

gksu 默认情况下未安装,如果您使用提到的命令,您可能必须安装它:

sudo apt-get install gksu
Run Code Online (Sandbox Code Playgroud)