我想制作一个简单的程序,每次在UI后面登录时运行。在我的AppleScript中,我正在运行一个需要管理员身份验证的sudo命令。有没有办法在每次运行时覆盖身份验证的需要?每次登录后运行此脚本时,我都不想输入用户名和密码。任何帮助? (简单来说,因为我是新手。) 非常感谢!
答案 0 :(得分:6)
您可以将您的用户名和密码放在applescript命令中,这样它就不会要求提供这些凭据。但请注意,这些项目以明文形式存储在AppleScript中,因此其他人可以查看它们。这不是很安全,但由您来决定它是否安全。注意:命令中不再需要“sudo”。
do shell script "whatever" user name "username" password "password" with administrator privileges
有些方法可以将密码存储在钥匙串中并从AppleScript中检索,从而使其安全。如果您想这样做,那么您可以按如下方式创建密码项。
打开Keychain Access应用程序并选择左栏中的钥匙串。然后单击文件>新密码项...,为其命名,将您的帐户短名称记入帐户,然后输入密码。在密码列表中突出显示它并获取有关它的信息。在“属性”按钮下,输入其类型作为通用键。之所以选择它是因为它们并不多,搜索速度也快得多。您提供的任何名称都必须放在“您的密码名称”下面的代码中。
现在从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
祝你好运!
答案 1 :(得分:1)
另一种解决方案是编辑
etc/sudoers
配置文件。
该文件的设置可以允许特定用户以超级用户身份执行特定命令(具有...是...特定参数)。
如果命令本身不是问题,但问题是在代码中暴露密码,那么这可能是解决方案。
sudores 文件应以超级用户身份运行命令 visudo 进行编辑。
在您开始篡改sudoers之前,我强烈建议您先了解一下visudo和sudoers语法的基本知识,因为弄乱该文件可能会导致系统出现严重问题。
如你所知,你所做的只是增加几行。
有关您可以Google或从此处http://www.sudo.ws/sudoers.man.html
开始的信息答案 2 :(得分:0)
如果您希望所有管理员帐户都能够在不输入密码的情况下使用sudo命令,请执行以下操作。
从/ / etc / sudoers文件中更改下面显示的行
%admin ALL=(ALL) ALL
到
%admin ALL=(ALL) NOPASSWD: ALL
可以使用Terminal和TextEdit应用程序完成此编辑。打开终端应用程序并键入以下命令:
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目录。