我如何给予应用程序永久权限,以便每次都不要求我的密码?


3

我正在使用一个名为Hostbuddy的应用程序来管理我的hosts文件中的条目。它工作得很好,唯一的问题是每次使用时都要求我输入密码,这会给你带来很多不便。我如何永久地给予Hostbuddy所需的许可?它要求输入密码的两件事是修改hosts文件并刷新我的DNS缓存。

PS,我理解这个的安全含义,我相信应用程序。

Answers:


4

我不认为这是需要密码的应用程序,而是主机文件本身。主机文件由root拥有,需要密码才能进行编辑。 Hostbuddy可能只是要求输入密码才能修改文件。解决此问题的方法是获取文件的所有权(由于安全原因,不建议使用此文件)。另一种方法是以管理员身份运行Hostbuddy(但我相信这需要一个密码才能启动它)。

如果您出于某种原因希望为了方便而承担安全风险,则应取得主机文件的所有权或以管理员身份运行Hostbuddy。

编辑:实施

为了实现这一点,我相信你必须在应用程序上设置setuid位。为此,我建议创建一个只有您所在的新用户组,并使用它来获得对该应用的root访问权限。要执行此操作,请先打开“系统偏好设置”并转到“用户和组”。您将要通过选择窗口左下角的“+”按钮来创建一个新组。继续创建一个名为'HostBuddy'的新组,没有这样的引号:

Creating a new group.

接下来,您需要将自己设置为此组的成员,如下所示:

How to add yourself to a group.

最后,我们需要在终端内做一些工作。继续打开Terminal.app并导航到HostBuddy所在的位置(可能是/ Applications),如下所示:

Changing to applications folder: cd /Applications

执行此操作后,我们在您的组名下为应用程序本身设置setuid位,并使用另外两个命令设置权限(请记住它是cAsE SenSiTIve!):

sudo chown root:HostBuddy hostbuddy.app; sudo chmod 4750 hostbuddy.app

这应该允许您以root身份单击并运行应用程序,而无需密码。由于我们在组合中添加了一个组,这也意味着您计算机上的其他用户没有该特权。他们每次都必须输入密码。只有您的特定用户(或HostBuddy组中的其他用户)才能获得无密码体验。


谢谢。谁能帮助我弄清楚如何从图标中以管理员身份运行应用程序,而不必每次都需要密码?这可能吗?
Josiah Sprague

我继续前进并添加了一个教程。告诉我它是否适合你!
James Manes

谢谢。我完全按照教程,但Hostbuddy每次尝试修改hosts文件或刷新缓存时仍然要求输入密码。
Josiah Sprague

1
bruh @JosiahSprague我想通了!使用 -R 以递归方式执行命令,即 sudo chown -R.... sudo chmod -R 然后放一个尾随斜线 .app/
Walrus the Cat

为了在这里完全清楚,顺序中的命令是 sudo chown -R root:HostBuddy hostbuddy.app/ sudo chmod -R 4750 hostbuddy.app/
Walrus the Cat
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.