通过输入密码来获得 sudo 权限

通过输入密码来获得 sudo 权限

对于投票者来说:这似乎是个骗局,但并不完全是,至少不是建议的骗局:在链接的问题中,命令可以安全地添加到 sudoers 文件中。如果是 IDE,这是一个坏主意。

因此,我从软件中心安装了 arduino IDE。事情是这样的,我需要从终端运行命令“sudo arduino”,这样 arduino IDE 才能正常工作。别误会,每当我从它的正常图标运行 arduino 时,它也能正常工作。我只是使用了一个特定的库,如果我不使用“sudo arduino”命令打开我的 IDE,它就无法正确编译(不确定为什么)。

由于我需要始终打开终端,我想知道是否可以创建一个 .desktop 文件(或者 .sh?),我只需单击它即可运行“sudo arduino”IDE。如果可能的话,我想避免每次都打开终端。

提前致谢!

更新 1 ---------------------------------------

我并不关心在从终端启动 IDE 时如何避免使用 sudo 命令(因此不要将“sudo arduion”写成“arduino”)。我想要的是完全避免使用终端,并在桌面上有一个图标,单击该图标将运行 arduino IDE,类似于进入终端并输入“sudo arduino”。

答案1

建议这是一个重复,假设将 Arduino 添加到 sudoers 文件是一个好主意,但事实并非如此。绝不将可能破坏您的系统的应用程序或编辑代码以破坏您的系统添加到 sudoers 文件中,仅仅因为它存在安全风险。

仅有的如果出现以下情况,请将应用程序或脚本添加到sudoers文件中:

  • 代码无法编辑(存储在需要管理员权限才能写入的位置),

  • 该应用程序不具备编辑其他应用程序或脚本代码的潜力。

在这种情况下该怎么办

  1. 将现有.desktop文件复制到~/.local/share/applications

    cp /usr/share/applications/arduino.desktop ~/.local/share/applications
    
  2. 使用 gedit 打开文件:

    gedit ~/.local/share/applications/arduino.desktop
    

    并在文件底部添加一个部分:

    Actions=Arduino IDE with sudo;
    
    [Desktop Action Arduino IDE with sudo]
    Name=Arduino IDE with sudo
    Exec=gksu arduino
    OnlyShowIn=Unity;
    

现在,arduino当您单击它时会“正常”运行,但右键单击后可选择使用 sudo 运行:

在此处输入图片描述

笔记

  • 如果你还没有gksu安装(16.04 已预装),你需要先运行:

    sudo apt-get install gksu
    
  • 你可能需要登出/登录以使编辑的启动器有效。

或者

如果您不想Arduino将图标锁定到启动器,请将命令添加为键盘快捷键:选择:系统设置 > “键盘” > “快捷键” > “自定义快捷键”。单击“+”并添加命令:

gksu arduino

到您选择的快捷方式。

答案2

复制 .desktop 文件并使用 gedit(或任何文本编辑器)编辑副本,即打开编辑器并将文件拖放到编辑器窗口中。您将看到以 开头的行Exec=,类似于Exec=/path/arduino。需要对此行进行相应修改,然后保存更改。

如果您想了解有关桌面文件的更多信息,我推荐:

问题:制作 .desktop 文件 - 仅几个问题
桌面文件规格:https://standards.freedesktop.org/desktop-entry-spec/latest/index.html

通过输入密码来获得 sudo 权限

使用命令安装 gksu sudo apt-get install gksu。现在,使用gksu而不是sudo( Exec=gksu /path/arduino),当您通过桌面文件启动时,系统将提示您输入密码,就像 gparted 一样。

相关内容