繁体   English   中英

从OS X中的bash脚本,是否可以提示管理员权限?

[英]From a bash script in OS X, is it possible to prompt for Administrator permissions?

我有一个shell脚本,在/ etc / hosts中添加了一行。 如果我使用sudo手动运行它,它将正常工作。 我想将此文件分发给使用Mac的同事。 但是,当shell脚本正常运行时,我得到:

sed: /etc/hosts: Permission denied

有没有办法像编译的ObjC代码那样强制bash脚本提示输入密码? 如果Bash无法做到这一点,Applescript可以做到吗?

Adayzdone的答案是使用“具有管理员权限”的正确方法

但您不需要硬编码密码或创建自己的对话框。

如果您不包含用户名和密码,系统将提示您输入管理员的标准用户名和密码对话框。

do shell script "echo hi" with administrator privileges

你的shell脚本可以调用sudo,它会在终端询问密码。

试试http://www.performantdesign.com/2009/10/26/cocoasudo-a-graphical-cocoa-based-alternative-to-sudo/

#!/usr/bin/env bash

if [ "$SUDO_USER" ]
then
  sed `do stuff`
else    
 cocoasudo --prompt="Please authenticate" bash -l -c "/path/to/this/script"
fi

使用Applescript:

property usr : "username"
property pswd : "password"

do shell script "echo hi" user name usr password pswd with administrator privileges

或者,如果您不想对密码进行硬编码:

set usr to text returned of (display dialog "Enter username" default answer "my username")
set pswd to text returned of (display dialog "Enter password…" default answer "my password")

do shell script "echo hi" user name usr password pswd with administrator privileges

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM