![如何在使用“sudo gedit”时阻止 root 拥有的文件](https://linux22.com/image/1084635/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%BD%BF%E7%94%A8%E2%80%9Csudo%20gedit%E2%80%9D%E6%97%B6%E9%98%BB%E6%AD%A2%20root%20%E6%8B%A5%E6%9C%89%E7%9A%84%E6%96%87%E4%BB%B6.png)
使用时,我总是需要在或gedit
中编辑文件,而这需要 root 权限。因此我在左侧创建了一个 Launcher 快捷方式,命令为。/etc/
/usr/
sudo gedit
所以每次我点击左侧启动器上的图标时,gedit
都会以 root 身份启动。但问题是,当我修改其他文件(例如 中的文件)时/home
,文件的所有者也会更改为 root。我不想这样做,我只想保存此文件而不修改其所有者,并且我不想每次都以gedit
root 身份重新启动以修改 root 拥有的文件。怎么办?
答案1
向您的启动器添加快捷方式。
我不会更改gedit
启动器的主命令。请执行以下操作:
切勿编辑默认启动器,首先将其从复制
/usr/share/applications
到~/.local/share/applications
:cp /usr/share/applications/gedit.desktop ~/.local/share/applications/gedit.desktop
使用 gedit 编辑文件(不是使用
gksudo
)gedit ~/.local/share/applications/gedit.desktop
查找以 开头的行
Actions=
,添加gedit with gksu;
:Actions=Window;Document;gedit with gksu;
在文件的最末尾添加快捷方式部分:
[Desktop Action gedit with gksu] Name=gedit with gksu Exec=gksu gedit OnlyShowIn=Unity;
完成,现在如果您单击图标,
gedit
则会“正常”启动,同时您可以gksu gedit
使用快捷方式:
直接浏览要编辑的文件
gksu
如果您经常使用 gedit编辑文件,您也可以直接Zenity
从启动器调用 ( ) 浏览器,使用 打开文件gksu
。您可以在打开文件时“省去”一步gksu
:
.desktop
像第一个选项一样复制并打开本地文件查找以 开头的行
Actions=
,添加gksu gedit with filebrowser;
:Actions=Window;Document;gksu gedit with filebrowser;
在文件的最末尾,添加快捷方式部分:
[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
否则系统会修改所有者!