定根,有一个叫copystuff在一个一个Xcode项目的资源文件夹文件,该文件内容如下:运行bash脚本与Objective-C的/可可
#!/bin/sh
cp -R /Users/someuser/Documents /Users/admin/Desktop
如果此位下面的代码链接到IB中的一个按钮......它将在Cocoa应用程序中按下按钮时将/ Users/someuser/Documents目录复制到/ Users/admin ...它在管理员帐户中启动应用程序时起作用(在这里使用OS X 10.5.x)...
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@"/bin/sh"];
[task setArguments:[NSArray arrayWithObjects:[[NSBundle mainBundle]
pathForResource:@"copystuff" ofType:@"sh"], nil]];
[task launch];
我的问题是..有没有办法让NSTask运行脚本运行为r或者从非管理员帐户调用此代码?或者问另一种方式..可以将Objective-C编码为以非root用户身份从非管理员账户运行脚本/ usr/bin中的脚本?
这几乎是正是我想要做的......为了不那么神秘,我在一个教育环境中部署的OS 10.5映像上有3个帐户。 (管理员,老师,学生)。教师和学生帐户是非管理员。根据请求,我试图让非管理员教师帐户能够将学生帐户中的项目复制到教师桌面。该应用程序可以从管理员帐户成功运行,但我希望能够给老师一些这些特权行动,而不给他们管理员密码.... – cit 2010-02-11 18:26:15
你可能有更好的运气,寻找更复杂的权限选项,如访问控制列表:http://aplawrence.com/ MacOSX的/ acl.html – 2010-02-11 18:32:51