我需要能够从 cron 任务或 ssh 会话中更改用户的密码。有没有一种简单的方法可以使用 bash 脚本来做到这一点?如果不是,那么在 Cocoa 中最简单的方法是什么?
Kristopher Johnson
问问题
1942 次
2 回答
2
Apple 在 Mac OS 10.5 中引入了允许更改密码的CSIdentitySetPassword API,如下所示:
#import <Collaboration/Collaboration.h>
AuthorizationRef authRef = NULL; // You have to initialize authRef
CBIdentityAuthority *authority = [CBIdentityAuthority defaultIdentityAuthority];
CSIdentityRef identity = [CBIdentity identityWithName:user authority:authority].CSIdentity;
if (CSIdentityGetClass(identity) == kCSIdentityClassUser) {
CSIdentitySetPassword(identity, (__bridge CFStringRef)newPassword);
CSIdentityCommit(identity, authRef, NULL);
}
AuthenticationRef 可以像 int这个响应一样被初始化。
于 2017-06-21T18:23:32.183 回答
1
使用passwd
外壳命令。
于 2008-12-09T18:11:29.737 回答