我刚刚听说不建议在GUI程序上使用sudo -i,因为它不太安全。

这里有什么道理吗?对此有好处吗?

sudo -i pantheon-files /location




pkexec pantheon-files /location


我曾经使用gksudo,但是已经淘汰了,所以现在我使用sudo -i来防止root拥有文件我的家乡但是我真的应该使用pkexec吗?

这显然是原因:


PROGRAM将在[in]中运行的环境将设置为最小已知的安全环境,以避免通过LD_LIBRARY_PATH或类似机制注入代码。此外,将PKEXEC_UID环境变量设置为调用pkexec的进程的用户ID。


上面的意思是什么(用英语),有没有道理sudo -i更有可能比pkexec损坏我的系统?

#1 楼

本身的命令(pkexecsudo -i)不一定有害。但是,就授予应用程序权限而言,它们执行不同的操作。

sudo(“替代用户”)命令允许您以其他用户(通常是root)的用户身份运行进程。也就是说,默认情况下,它以不受限制的用户身份运行该进程。

当您使用pkexec时,您正在使用PolicyKit。 PolickyKit是系统的一部分,可跟踪某些用户和程序应具有的特权类型。这取决于定义了描述这些特权的某些策略文件。例如,Ubuntu Software Center的策略将授予使用apt的权限,但不一定授予更改网络设置的权限。您所引用的文档通过“最小已知和安全环境”表示这种控制。目的是PolicyKit不会授予不必要的更多权限。

为什么这对您很重要,并且使用sudo运行确实不安全吗?

这取决于书面政策和应用本身。对于文件之类的应用,在任何情况下以提升的权限运行都是非常危险的。但是,请想象一下,文件有权执行您永远不想做的事情,例如创建或删除用户帐户。由于“文件”可以具有第三方插件,因此可以想象存在一个在后台运行并试图删除帐户的恶意第三方插件。如果您是从PPA或从下载的Deb安装的软件,则可能已经感染了这种类型的恶意软件。使用强大的PolicyKit策略,Files将永远无法执行此操作,从而导致恶意软件无效。但是使用sudo,它将具有进行此恶意更改的完整权限。

但是,如果该策略不强大怎么办?

的确,可以编写一条策略来实质上执行与sudo相同的操作。但是,策略是作为系统安全更新的一部分进行管理的。因此,随着时间的推移,随着编写更强大的系统策略,运行带有pkexec的应用实际上可以通过更新获得更高的安全性。使用sudo将始终授予完全权限。

评论


好的,这是有道理的,但这是一个极端的情况-如果有人碰巧安装了一个恶意插件,然后又以root身份运行它,那么策略工具包文件中就没有bug了。使用sudo安全运行吗? -是的,但是机会是如此渺茫,我真的不能认为这是真正有理由担心……

–user3
15年7月13日在22:00

@Tim真的不是那么遥不可及。您是否安装了PPA?您确定从那里安装的应用没有携带隐藏的恶意软件吗?你真的不知道每次使用sudo时,也可能会授予那些对恶意软件的权限。是否有可能永远不会接种疫苗,也永远不会生病?当然。但为什么?当您可以做安全的事情时,为什么要做危险的事情呢?

–丹尼尔·佛瑞(DanielForé)
15年7月13日在22:03



如果安全的东西不起作用-例如注释线程中的示例2.安全的东西在15分钟内不会记住您的密码,并且3.并非所有的GUI程序都可以使用安全的方法,例如gedit,scratch-text-editor和4.它不接受错误报告中的参数。如果它具有与sudo相同的功能(尤其是15分钟的东西),我会满意的,但是现在还没有。 5. 5.“您可能已经感染了该恶意软件”的机会如此之低,以至于轻微的风险要大于安全性稍差的用户界面。

–user3
15年7月13日在22:18