gksu和gksudo命令允许您在运行图形应用程序时提升权限。
安装
默认情况下,gksu不一定会在所有Linux发行版中默认安装。
您可以使用apt-get命令从命令行在Ubuntu内安装它,如下所示:
sudo apt-get install gksu
您还可以使用突触包管理器来安装gksu。 在编写这个工具时,Ubuntu主包管理器中没有这个工具。
为什么你会使用gksu
假设您使用的是Nautilus文件管理器,并且您希望编辑另一个用户拥有的文件夹中的文件,或者是只能以root用户身份访问的文件夹。
当你打开一个你有权限访问的文件夹时,你会发现诸如创建文件和创建文件夹等选项变灰。
您可以打开一个终端窗口,使用su命令切换到另一个用户,然后使用nano编辑器创建或编辑文件。 或者,您可以使用sudo命令在没有正确权限的地方编辑文件。
gksu应用程序允许您以不同的用户身份运行Nautilus,这意味着您可以访问当前灰显的文件和文件夹。
如何使用gksu
运行gksu的简单方法是打开一个终端窗口并键入以下内容:
gksu
一个小窗口将打开两个框:
- 跑
- 作为用户
运行框想知道你希望运行的程序的名称,而用户框可以让你决定运行程序的用户。
如果您运行gksu并输入nautilus作为运行命令并将该用户保留为root用户,您现在可以操作先前无法访问的文件和文件夹。
你不必自己使用gksu命令。 您可以按如下方式指定您希望运行的命令和用户:
gksu -u根鹦鹉螺
gksu和gksudo的区别
在Ubuntu gksu和gksudo执行相同的任务,因为它们是符号链接。 (他们都指向相同的可执行文件)。
但是,您应该认为gksu是su命令的图形等同物,这意味着您已切换到用户的环境。 gksudo命令等同于sudo命令,这意味着您正在运行应用程序,因为您正在模拟默认情况下是root的用户。
使用权限提高的图形应用程序时要小心
使用Nautilus创建和编辑文件,同时作为gksudo或gksu运行可能会导致灾难性后果。
gksu和gksudo应用程序中有一个选项,称为preserve environment(高级设置)。
这允许您使用当前登录的用户的设置访问应用程序,但以模拟通常为root的用户身份运行该应用程序。
为什么这是一件坏事?
想象一下你正在运行的应用程序是Nautilus文件管理器,并以John身份登录。
现在想象你正在使用gksudo以root身份运行Nautilus。 您以约翰身份登录,但以root身份运行Nautilus。
如果您开始在主文件夹下创建文件和文件夹,您将不一定知道这些文件是以root身份作为所有者和root用户创建的。
当您尝试使用以普通约翰用户身份运行的Nautilus访问这些文件时,您将无法编辑这些文件。
如果编辑的文件是配置文件,那么这确实可能非常糟糕。
你应该使用gksu
GNOME wiki上的gksu页面表明,使用gksu不再是一个好主意,它正在被重写为使用策略包。
但目前没有可行的替代方案。
如何将一个运行作为根选项添加到Ubuntu中的常用应用程序
想象一下,您希望能够向应用程序添加右键单击菜单,以便您可以根据需要以root身份运行它。
点击Ubuntu启动器上的文件柜图标打开Nautilus。
点击左侧的“计算机”图标,导航到usr文件夹,然后导航到共享文件夹,最后导航到应用程序文件夹。
找到文件柜图标,下面有文件“文件”。 右键点击图标并选择“复制到”。 现在导航到家庭,本地,共享和应用程序文件夹。 ( 您需要通过右键单击主文件夹并选择“显示隐藏的文件” 来取消隐藏本地文件夹 )。
最后点击“选择”
现在导航到主文件夹,然后导航到本地,共享和应用程序文件夹。
按超级键并输入“gedit”。 文本编辑器图标将出现。 点击图标。
将nautitilus.desktop图标从Nautilus窗口拖到编辑器中。
搜索显示“Action = Window”的行并将其更改为以下内容:
action = Window,Open Root
在底部添加以下行:
[作为根打开的桌面操作]
名称=作为根打开
Exec = gksu鹦鹉螺
保存文件。
注销一个日志,您可以右键单击文件柜图标并选择“以root身份打开”以管理员身份运行Nautilus。
概要
虽然gksu是一个选项,但我认为如果您需要执行管理任务,那么您最好使用终端