如何运行在苹果脚本的管理外壳脚本时改写用于身份验证的问这个问题?(How to overwrite

2019-07-19 00:21发布

我想使这对UI背后登录每次运行一个简单的程序。 在我的AppleScript我运行需要管理员身份验证的sudo命令。 有没有办法在每次运行时覆盖了认证的需要? 我不想让每个这个脚本登录之后运行时输入自己的用户名和密码。 任何帮助吗? (在非常简单的术语为我是一个新手。),不胜感谢!

Answer 1:

你可以把你的用户名和密码在AppleScript的命令,使其不要求提供这些凭证。 但是请注意,这些项目被存储为AppleScript的内部纯文本,从而有可能给别人看他们。 这不是真正的安全,但它是由你来决定它是否安全。 注意:您不需要在命令“命令”下去了。

do shell script "whatever" user name "username" password "password" with administrator privileges

在有些情况下,你可以在Keychain存储你的密码,并从AppleScript的检索,从而使得它的安全方法。 如果你想这样做,那么您所创建的密码项目如下。

打开钥匙串访问应用程序并选择在左栏的钥匙串。 然后单击文件>新建密码项目...,给它一个名字,把你的帐户短名称的账户,并输入密码。 高亮显示密码列表,并获得它的信息。 根据属性按钮进入其作为一种通用的关键。 这是选择,因为不会有太多的人,并且搜索速度要快得多。 你给它的任何名称必须放在下面的代码在“密码名称”。

现在,从AppleScript的,你可以用它像这样...

set myPass to getPW()

do shell script "whatever" user name "username" password myPass with administrator privileges

on getPW()
    do shell script "security 2>&1 >/dev/null find-generic-password -gl \"Your Password Name\" | awk '{print $2}'"
    return (text 2 thru -2 of result)
end getPW

祝好运!



Answer 2:

另一种解决方案是编辑

etc/sudoers

配置文件。

在该文件中的设置可以允许特定用户以超级用户执行(与...是...具体参数)的特定命令。

如果该命令本身是没有问题的,但问题是在代码暴露密码,那么这可能是解决方案。

sudores文件应该被编辑在运行命令visudo命令,以超级用户。

你开始与sudoers文件篡改之前,我强烈建议你得到visudo命令,并在sudoers语法的基本知识,搞乱该文件可能会导致serius问题的系统。

正如你知道你在做什么只是添加几行的问题。

有关信息可能谷歌或从这里开始http://www.sudo.ws/sudoers.man.html



Answer 3:

如果你希望所有的管理员帐户才能够不输入密码才能使用sudo命令,然后执行以下操作。

改变从/私人的/ etc / sudoers文件如下所示的行

%admin  ALL=(ALL) ALL

%admin  ALL=(ALL) NOPASSWD: ALL

此编辑可以通过使用终端和文本编辑应用程序来完成。 打开终端应用程序,并输入以下命令:

cd ~/desktop
sudo cp -n /etc/sudoers /etc/sudoers.orignal
sudo cp /etc/sudoers sudoers.txt
sudo chmod ug+w sudoers.txt
open sudoers.txt
visudo -c -f sudoers.txt
sudo cp -X sudoers.txt /etc/sudoers

完成后,桌面上的文件sudoers.txt可放入垃圾桶。

要撤消更改,请使用以下命令:

sudo cp /etc/sudoers.original /etc/sudoers

这是使用OS X 10.10.1测试

如果你想要做的单个用户一样,那么看: http://hints.macworld.com/article.php?story=20021202054815892

下面是每个命令功能的简要说明:

cd ~/desktop

这可以确保您从桌面文件夹的工作。

sudo cp -n /etc/sudoers /etc/sudoers.original

这种备份您的sudoers文件。 备份可以用来撤消更改。 -n选项确保了现有sudoers.original文件不会被覆盖。

sudo cp /etc/sudoers sudoers.txt

复制sudoers文件到您的桌面。 .txt扩展添加使OS X会知道这是一个文本文件。

sudo chmod ug+w sudoers.txt

更改文件的权限,允许写访问。

open sudoers.txt

打开在TextEdit应用程序的文件。 您需要编辑该文件并保存更改。

visudo -c -f sudoers.txt

检查语法错误编辑过的文件。 输出应sudoers.txt: parsed OK

sudo cp -X sudoers.txt /etc/sudoers

将文件复制回/ etc目录中。



文章来源: How to overwrite the asking for authentication when running an admin shell script in Apple Script?